package netutel.service;
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;
public class OperateIni {
// 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.trim(), value.trim());
}
}
// System.out.println(line);
}
if(line==null){
sectionsMap.put(currentSection, itemsMap);
}
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);
}
public static void main(String[] args) {
// String str = getValue("SYSTEM","console_url","G:/scheduler.ini");
// System.out.println(str);
getSectionNames(new File("G:/scheduler.ini"));
}
}
- 浏览: 69482 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (108)
- 数据库 (6)
- web前端 (13)
- java基础 (29)
- XML (3)
- CSS (1)
- JQuery (2)
- 杂谈 (1)
- struts2 (1)
- 配置 (2)
- 系统 (1)
- javaScript (1)
- tomcat (2)
- maven (5)
- jxl (1)
- spring (6)
- JAX-RS (2)
- servlet-api (1)
- js (1)
- itext (1)
- 面试 (4)
- java自定义注解 (1)
- jsp (3)
- linux (4)
- eclipse (1)
- ftp (1)
- 受益匪浅 (5)
- redis (5)
- java优化 (1)
- protobuf (1)
- virtualbox (1)
- 操作系统 (1)
- 异常 (1)
最新评论
发表评论
-
java try catch finally 语句中return执行情况
2015-04-17 11:43 381对于含有return语句的情况,这里我们可以简单地总结如下: ... -
Java 接口(interface)的用途和好处
2014-11-17 16:02 1307http://write.blog.csdn.net/pos ... -
java 中getDeclaredFields() 与getFields() 的区别
2014-10-28 16:51 766java 中getDeclaredFields() 与get ... -
Java程序执行Linux命令
2014-09-10 10:59 1097java程序中要执行linux命 ... -
java实现http下载
2014-08-22 17:01 348/** * 通过http下载文件 * @para ... -
Java线程(四):线程中断、线程让步、线程睡眠、线程合并
2014-08-19 14:21 691本文来自:高爽|Coder,原文地址:http://b ... -
JAVA反射与注解实例
2014-08-18 14:01 343JAVA反射与注解实例 1 JAVA反射机制 JA ... -
Java中hashcode的理解
2014-08-05 15:38 494转:http://blog.csdn.net/chi ... -
java判断是否是exe文件
2014-07-15 13:23 918public static int myReadFileI ... -
java常用设计模式
2014-07-11 14:00 418设计模式;一个程序 ... -
Java里Stream (byte 流)的主要类
2014-07-04 11:35 514Java里Stream (byte 流)的主要类 2 ... -
Java Reflection(反射机制)
2014-07-04 09:57 305Java 反射机制 反射机制简介 反射机制应用示例 ... -
java中的一些基础知识实例
2014-07-03 17:41 3201> java中验证ip的格式 Pa ... -
java split分解特殊字符 | .
2014-06-12 14:45 3441、如果用“.”作为分隔的话,必须是如下写法:String. ... -
java 多线程例子
2014-06-12 14:15 483转:http://blog.csdn.net/ocean20 ... -
Java 内部类
2014-05-29 11:57 373Java 内部类 分四种: ... -
运行时异常与一般异常有何异同
2014-05-29 11:40 327Throwable 是所有 Java 程序中错误处理的父 ... -
java调用打印机
2014-05-20 15:21 900/** * 打印(rt.jar javax ... -
java io 多种文件操作方式(字节、字符、行、随机)
2013-07-09 09:20 752一、多种方式读文件内容。【参考:http://www.ibm ... -
通过Java反射动态获取信息
2013-06-07 13:26 451public static Car getCarInfo() ...
相关推荐
操作Ini文件的类 java实现, 采用正则表达式解析, 能操作格式规范的ini文件
里面用到了树。表格,以及右键,另存为等,还有树和表格编辑器的编写,并且实现了TreeModel接口,附ini文件,请先执行,“文件--打开”操作
操作Ini文件的类 java实现, 采用正则表达式解析, 能操作格式规范的ini文件
java写的关于INI文件的读写,并含有swing 组件,能够对ini文件 进行读写,并能读出注释,并且能对文件 进行增加,删除操作
java ini.java操作ini文档,读取配置文件信息,简单易用
基于java的开发源码-INI文件操作类库 [ini4j].zip 基于java的开发源码-INI文件操作类库 [ini4j].zip 基于java的开发源码-INI文件操作类库 [ini4j].zip 基于java的开发源码-INI文件操作类库 [ini4j].zip 基于java的...
基于Java的INI文件操作类库 [ini4j].zip
INI文件操作类库 [ini4j].7z
基于java的INI文件操作类库 [ini4j].zip
'// the path of our ini file Private strInI As String '// Win API Declares Private Declare Function WritePrivateProfileString _ Lib "kernel32" Alias "WritePrivateProfileStringA" _ (ByVal ...
ini4j-0.5.4.jar,以及java通过ini4j操作ini文件简单示例
inieditor-r2.jar自己找了网上没有具体的应用案例,不过你不用发愁啦,我已经做了个demo测试java操作ini啦,只需要10行代码,自己研究的java操作xml,ini,简单到你无法想象,只需要一共20行代码,绝对原创,欢迎下载...
java源码:INI文件操作类库 [ini4j].zip
ini操作类,各系统通用,Google提供
基于Java的源码-INI文件操作类库 [ini4j].zip
基于Java的实例源码-INI文件操作类库 [ini4j].zip
基于Java的实例开发源码-INI文件操作类库 [ini4j].zip
org.dtools.javaini-v1.1.00.jar 是从官网下载的java对ini配置文件读取的包,但是只支持ASCII码,此包 是我下载源码修改后上传重新编译打包支持UTF-8的jar。
用于生成java ini文件,并进行修改更新操作
34.读取ini文件属性 35.合并一个文件下所有的文件 36.写入ini文件属性 37.获得当前路径 38.读取XML数据库 39.写入XML数据库 40.ZIP压缩文件 41.ZIP解压缩 42.递归删除目录中的文件 43.ZIP压缩文件夹 44.Java...