- 浏览: 232729 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (57)
- 代码仓库-Java (8)
- DS习题及答案 (8)
- 源码研究 (4)
- 乱弹琴 (3)
- 面试笔试 (2)
- JMonkey.Engine (2)
- JMF (1)
- Visual Studio (1)
- Java (23)
- Chrome (3)
- 浏览器 (1)
- 扩展 (1)
- 其他 (0)
- Hadoop (1)
- 飞飞CMS二次开发实录 (1)
- GXCMS (1)
- Java Lucene (3)
- Weka (2)
- 数据挖掘 (16)
- 代码仓库-Java,Kaggle (0)
- Kaggle (5)
- Mahout (7)
- 一步一步Hadoop (7)
- 算法 (1)
- Python (1)
- NLP (1)
最新评论
-
hnxyflypj:
那个csv数据在哪里呢
[Mahout] 使用Mahout 对Kddcup 1999的数据进行分析 -- Naive Bayes -
hj01kkk:
多谢赐教!
[Mahout] 使用Mahout 对Kddcup 1999的数据进行分析 -- Naive Bayes -
酷呀嗒:
给的文件没有main函数 这个怎么启动啊
Java实现的朴素贝叶斯分类器 -
RangerWolf:
caihongshijie6 写道你好,这里面用到的数据文件在 ...
Java实现的朴素贝叶斯分类器 -
caihongshijie6:
你好,这里面用到的数据文件在哪里找呢?
Java实现的朴素贝叶斯分类器
2012-11-29
google出一个非常犀利的iniEditor: http://grepcode.com/file/repository.jboss.org/nexus/content/repositories/releases/org.rhq/rhq-core-util/3.0.0.EmbJopr4/org/rhq/core/util/IniEditor.java
我才写了百来行,人家的代码有上千行。我的只读,人家的还能修改,确实很强。
不过还没测试过中文,应该木有问题!
----
ini文件在日常工作中用得还是挺广泛的。在目前我手上的一个小项目之中,也用到了ini文件。而且里面存储了中文。
在网上也找了别人的代码,比如有个“由月”大神写的,我觉得写得就挺好的。
但是发现不支持中文。于是乎就自己写了一个简单的读取ini文件的方法。也在此共享出来。
欢迎大家提意见!
Known Issues:
1. 调用的java source file必须是UTF-8格式的。我在Eclipse3.7中,发现默认的格式为CP1252. 不支持中文。因此调用打印的结果也是乱码。
2. 第一行是section名字的话,发现无法读出来。直接略过。【我自己也不知道怎么解决。】
PS:进公司才发现,原来GoAgent的原创者phus就坐在我旁边,好崇拜,好幸运啊!哈哈!
向他学习!
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; /** * Simple reader methods for ini formated file using java * Using UTF-8 encoding. * Support DBCS, such as Chinese, Japanese * @author Wenjun Yang * @email yang.rangerwolf@gmail.com * 2011-10-30 * */ public class IniReader { // section item value private static Map<String, HashMap<String, String>> sectionsMap = new HashMap<String, HashMap<String, String>>(); // item value private static HashMap<String, String> itemsMap = new HashMap<String, String>(); private static String currentSection = ""; /** * Load data from target file * @param file target file. It should be in ini format */ private static void loadData(File file) { BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(file)); String line = null; while ((line = reader.readLine()) != null) { line = line.trim(); if("".equals(line)) continue; if(line.startsWith("[") && line.endsWith("]")) { // Ends last section if(itemsMap.size() > 0 && !"".equals(currentSection.trim())) { sectionsMap.put(currentSection, itemsMap); } currentSection = ""; itemsMap = null; // Start new section initial currentSection = line.substring(1, line.length() -1); itemsMap = new HashMap<String, String>(); } else { int index = line.indexOf("="); if(index != -1) { String key = line.substring(0,index); String value = line.substring(index + 1, line.length()); itemsMap.put(key, value); } } // System.out.println(line); } reader.close(); } catch (Exception e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { e1.printStackTrace(); } } } } public static String getValue(String section, String item, File file) { loadData(file); HashMap<String, String> map = sectionsMap.get(section); if(map == null) { return "No such section:" + section; } String value = map.get(item); if(value == null) { return "No such item:" + item; } return value; } public static String getValue(String section, String item, String fileName) { File file = new File(fileName); return getValue(section, item, file); } public static List<String> getSectionNames(File file) { List<String> list = new ArrayList<String>(); loadData(file); Set<String> key = sectionsMap.keySet(); for (Iterator<String> it = key.iterator(); it.hasNext();) { list.add(it.next()); } return list; } public static Map<String, String> getItemsBySectionName(String section, File file) { loadData(file); return sectionsMap.get(section); } }
- IniReader.7z (1.2 KB)
- 下载次数: 311
- sample_ini_file.7z (13.9 KB)
- 下载次数: 292
评论
4 楼
RangerWolf
2013-10-23
yxc023 写道
静态成员变量.....
大神,静态成员变量怎么了? 求指导~~~
3 楼
yxc023
2013-09-10
静态成员变量.....
2 楼
RangerWolf
2013-07-06
woundsofcloud 写道
很好的一个例子。但是不知道为什么,最后一个section的值获取不到,总是会报空指针异常,但是debug时却发现sectionsMap中有值存在,头痛。。。。 还有一个解决中文乱码的问题:1,将文件保存为utf-8格式。2,将36行的reader = new BufferedReader(new FileReader(file)); 改为reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "gbk"));
自己写的时候 确实发现很多很多需要解决的问题~
后来发现有人家写好的 而且后来在自己的各种项目中都在使用的代码 非常推荐:
http://grepcode.com/file/repository.jboss.org/nexus/content/repositories/releases/org.rhq/rhq-core-util/3.0.0.EmbJopr4/org/rhq/core/util/IniEditor.java
就在我的博客的第一句话~
1 楼
woundsofcloud
2013-01-31
很好的一个例子。但是不知道为什么,最后一个section的值获取不到,总是会报空指针异常,但是debug时却发现sectionsMap中有值存在,头痛。。。。 还有一个解决中文乱码的问题:1,将文件保存为utf-8格式。2,将36行的reader = new BufferedReader(new FileReader(file)); 改为reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "gbk"));
发表评论
-
[Lucene] Lucene 4.10 显示分词结果
2014-12-09 17:22 2237主要参考: http://www.cnblogs.com/ ... -
[Hadoop] 分布式Join : Replicated Join
2014-09-25 15:41 937上一篇文章说的ReduceSid ... -
[Hadoop]使用Hadoop进行ReduceSideJoin
2014-09-24 17:09 1380Note: 1. 内容主要参考<Hadoop in ... -
[Hadoop] Hadoop 链式任务 : ChainMapper and ChainReducer的使用
2014-09-23 11:02 5347注意: 1. 本人目前使用的版本是1.2.1,因此Cha ... -
[Hadoop] 练习:使用Hadoop计算两个向量的内积
2014-09-22 13:30 1123同样是<Hadoop in Action> 上面 ... -
[Hadoop] TopK的一个简单实现
2014-09-22 11:54 6893题外话: 《Hadoop in Action》 是一本非 ... -
[Mahout] 使用Mahout 对Kddcup 1999的数据进行分析 -- Naive Bayes
2014-07-19 11:58 3727通常,在网上找到的mahout的naive bayes的例 ... -
[Mahout] 为什么mahout需要sequencefile ?
2014-07-17 23:02 895《Apache Mahout Cook》 第二章的标题是: ... -
[Mahout] mahout 0.9 的 seqdirectory 有bug
2014-07-13 15:29 966具体请参考:http://mail-archives.apa ... -
[Mahout] 使用Mahout对iris数据进行分析 - Logistic Regression
2014-07-11 14:17 6104在mahout的官网上面,有讲诉如何在命令行之中使用Log ... -
[Mahout] Windows + Eclipse 构建mahout运行环境
2014-07-11 12:50 7235mahout的完整运行还是需要hadoop的支持的,不过很 ... -
[Mahout] 第一个小实验:使用GroupLens进行推荐模型的检验
2014-07-06 15:29 4676注: 内容参考至《Mahout实战》 根据mahout实战 ... -
[Mahout] Windows下Mahout单机安装
2014-07-06 10:41 7156刚开始接触Mahout,在网上也看了一些人家的文章,但是感觉 ... -
[Kaggle实战] Titanic 逃生预测 (5) - 使用Dot语言绘制决策树
2014-06-07 21:38 3101昨天好不容易创建了一棵决策树,但是受限于JFreeChar ... -
[Kaggle实战] Titanic 逃生预测 (4) - 决策树建模
2014-06-02 22:20 6539之前的文章已经解决了数据预处理的问题。从这里开始,就要开始 ... -
[Kaggle实战] Titanic 逃生预测 (3) - Age离散化
2014-06-02 09:40 3873昨天的文章大致构建了一个data matrix, 并进行了 ... -
[Kaggle实战] Titanic 逃生预测 (2) - 数据预处理
2014-06-01 23:06 8029上一篇文章简要介绍了比赛的主题与将会使用到的数据集。 ... -
[Kaggle实战] Titanic 逃生预测 (1) - 项目起步
2014-06-01 23:05 12528这次实战的Kaggle比赛 ... -
Java实现的朴素贝叶斯分类器
2014-02-15 16:48 15918目前的算法只能处理结果只有两种的情况,即true or fa ... -
使用Java实现的ID3算法
2014-02-14 10:33 6090这里就不描述ID3算法了。 关于如何使用java实现,其 ...
相关推荐
java读取ini文件的jar包,内含有一个实例.
1、请把Ini文件放在桌面上 2、点击运行,java控制台会打印Ini中的某一个数值 3、如果无法解压请使用快压亚索软件解压
里面用到了树。表格,以及右键,另存为等,还有树和表格编辑器的编写,并且实现了TreeModel接口,附ini文件,请先执行,“文件--打开”操作
java读取ini文件
java读取ini文件的工具,实测很好用,分享给大家
java读取、更新ini配置文件,可以分块配置
jar包。包含DOC文档。能够读取ini格式的配置文件。欢迎下载,有问题请留言。
像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigParse,方便程序员或用户通过该类的方法来修改.ini配置文件。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的...
java读写ini文件的项目小例子。 运行类文件在根目录ini文件夹下src/com文件夹中start.java文件 相关jar包在根目录ini文件夹下bin文件夹中
java ini.java操作ini文档,读取配置文件信息,简单易用
org.dtools.javaini-v1.1.00.jar Java读取ini文件需要的jar包。
org.dtools.javaini-v1.1.1.jar 也是Java读取ini文件需要的jar包。
java读取xml,ini格式的文件的简单实例
该资源详细介绍了Java如何读取各种配置文件。如xml ini 等等
这是一个解决Java开发中读取配置文件每次都要重写的困惑。 特性 开箱即用,简单方便 支持JDK1.6+ 无需过多依赖,按需添加 状态 [已完成] 解析Properties配置文件 [待完成] 解析Xml配置文件 [待完成] 解析Ini配置...
因为他内部有一个ConfigParser 类来支持.ini 文件的读写,根据该类提供的方法程序员可以自由的来操作.ini 文件。而在Java 中,Java 支持的是.properties 文件的读写。JDK 内置的java.util.Properties 类为我们操作....
使用c语言读取和写入ini文件。 用起来有点像面向对象的方式 。