Java工具类(一):Ini文件简单读写
2017-03-07 00:00
330 查看
一、ini定义
INI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成。二、ini示例
[Connect] connect=test max=1000 min=20 time=2017-01-06 12:00:57
其中[Connect]是节section,之下的为key,key由name与value两部分组成。
三、Java代码示例
在这里使用java原生去读写ini文件,按照ini的构成,我们可以先获取section之内的内容,然后根据=判断获取key的name与value放入集合map,方便之后的使用。一下代码是参考网上打出来的,因找不到出处,希望原作者原谅。public class IniUtils { // 定义一个Map存放获取到的值 private final static Map<String, Map<String, Object>> saveObject = new HashMap<String, Map<String, Object>>(); // 获取ini文件 @SuppressWarnings("deprecation") final public static synchronized void openIni(String path) throws IOException { DataInputStream ds = new DataInputStream(new FileInputStream(path)); String str = ds.readLine(); String section = null; while (str != null) { if (str.startsWith("[")) { Map<String, Object> itemMap = new HashMap<String, Object>(); section = str.substring(1, str.length() - 1); saveObject.put(section, itemMap); } else { Map<String, Object> itemMap = saveObject.get(section); String key = str.substring(0, str.indexOf("=")); String value = str.substring(str.indexOf("=") + 1); itemMap.put(key, value); } str = ds.readLine(); } ds.close(); } // 写入ini文件 final public static synchronized void writeIni(String name) throws IOException { StringBuilder sb = new StringBuilder(""); for (String section : saveObject.keySet()) { sb.append("[").append(section).append("]").append("\n"); Map<String, Object> map = saveObject.get(section); Set<String> keySet = map.keySet(); for (String key : keySet) { sb.append(key).append("=").append(map.get(key)).append("\n"); } } File file = new File(name); if (!file.exists()) { file.createNewFile(); } try { OutputStream os = new FileOutputStream(file); os.write(sb.toString().getBytes()); os.flush(); os.close(); } catch (IOException e) { e.printStackTrace(); } } // 设值 final public static synchronized void setValue(String section, String key, Object value) { Map<String, Object> sectionMap = saveObject.get(section); if (sectionMap == null) { sectionMap = new HashMap<String, Object>(); saveObject.put(section, sectionMap); } sectionMap.put(key, value); } // 获取值 final public static synchronized Object getValue(String section, String key) { Object obj = null; Map<String, Object> item = saveObject.get(section); if (item != null) { obj = item.get(key); } return obj; } }
工具类写完之后,我们可以写一个main进行简单的测试。获取文件内的max值。
public class Main { public static void main(String args[]) throws IOException { String path = "D:\\Connect.ini"; Ini.load(path); String max = (String) Ini.getValue("Connect", "max"); System.out.println(max); } }
四、其他好用读写ini工具
1、Java INI package2、ini4j
五、引用
1、java读写和修改ini文件汇总相关文章推荐
- WinAPI: WritePrivateProfileString、GetPrivateProfileString - 简单读写 Ini 文件
- java简单地读写文件 和 键盘输入
- java常用类解析六:IO系统文件读写工具类
- 文件读写工具类TextFile.java
- JAVA I/O流 (二)--一个读写文件的小工具类TextFile
- 使用Java实现对dbf文件的简单读写
- java简单读写文件操作
- java中最简单的文件复制,读写(IO流操作)
- 简单的属性文件读写工具类
- Excel工具类,本类提供JAVA中对XLS文件的简单操作(转载过来稍作了修改)。
- 一个java操作ini格式文件的工具类,支持增删查改,不过由于项目所需,只做了针对单行的操作。写得不好求指教。
- 用java读写ini配置文件
- java常用类解析六:IO系统文件读写工具类
- java ini 文件读写api
- 使用Java实现对dbf文件的简单读写
- 用java读写ini配置文件
- java 读写 ini 文件
- 在Java中简单的读写log或者txt文件内容
- 读写INI配置文件的Java类
- 用java读写ini配置文件的原因以及实现 示例