`
brmrk
  • 浏览: 30167 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

java读取ini文件的通用方法

    博客分类:
  • java
阅读更多
import java.io.BufferedReader;  
import java.io.FileInputStream;  
import java.io.IOException;  
import java.io.InputStreamReader;  
import java.util.HashMap;  
import java.util.Properties;  
  
/** 
 * @author James Fancy 
 * @modifyed by brmrk 
 */  
public class IniReader {  
  
    protected HashMap sections = new HashMap();  
    private transient String currentSecion;  
    private transient Properties current;  
  
    public IniReader(String filename) throws IOException {  
        //modifyed by brmrk  
        BufferedReader reader = new BufferedReader(new InputStreamReader(  
                new FileInputStream(filename), "UTF-8"));  
        read(reader);  
        reader.close();  
    }  
  
    protected void read(BufferedReader reader) throws IOException {  
        String line;  
          
        while ((line = reader.readLine())!=null ) {  
              
            parseLine(line);  
        }  
          
    }  
  
    protected void parseLine(String line) {  
        line = line.trim();  
          
        if (line.matches("\\[.*\\]")) {  
            // 如果是 JDK 1.4(不含1.4)以下版本,修改为  
            // if (line.startsWith("[") && line.endsWith("]")) {  
			//commented by brmrk  
			//          if (current != null) {  
			//              sections.put(currentSecion, current);  
			
			//          }  
  
            currentSecion = line.replaceFirst("\\[(.*)\\]", "$1");  
              
            // JDK 低于 1.4 时  
            // currentSecion = line.substring(1, line.length() - 1);  
            current = new Properties();  
              
        } else if (line.matches(".*=.*")) {  
            // JDK 低于 1.4 时  
            // } else if (line.indexOf('=') >= 0) {  
            int i = line.indexOf('=');  
            String name = line.substring(0, i);  
            String value = line.substring(i + 1);  
  
            current.setProperty(name, value);  
			//added by brmrk  
            sections.put(currentSecion, current);  
        }  
    }  
  
    public String getValue(String section, String name) {  
        Properties p = (Properties) sections.get(section);  
  
        if (p == null) {  
            return null;  
        }  
  
        String value = p.getProperty(name);  
        return value;  
    }  
  
}  


原来是James Fancy写的,网上找来用了下,自己修改了两处,一处是原来使用FileReader时会出现的乱码问题,一处是必须在ini文件中多给出一个空的[ ]标记问题,不然返回null。
0
0
分享到:
评论

相关推荐

    Java_Properties_类读取配置文件信息

    因为他内部有一个ConfigParser 类来支持.ini 文件的读写,根据该类提供的方法程序员可以自由的来操作.ini 文件。而在Java 中,Java 支持的是.properties 文件的读写。JDK 内置的java.util.Properties 类为我们操作....

    JAVA上百实例源码以及开源项目

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    java的property配置文件的用法.txt

    因为他内部有一个 ConfigParser 类来支持 .ini 文件的读写,根据该类提供的方法程序员可以 自由的来操作 .ini 文件。而在 Java 中, Java 支持的是 .properties 文件的读写。 JDK 内置的 Java.util.Properties 类...

    JAVA上百实例源码以及开源项目源代码

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    java开源包4

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    java开源包11

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    java开源包101

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    java开源包6

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    java开源包9

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    java开源包5

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    java开源包8

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    java开源包10

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    java开源包3

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    java开源包1

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    java开源包2

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    java开源包7

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    Java资源包01

    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...

    objectstudio-plugin:用于Jenkins的Cincom ObjectStudio插件

    加载脚本:作为-A命令行参数传递后加载脚本:作为AFTERLOGONSCRIPT环境变量传递在运行ObjectStudio之前,某些文件已复制到临时文件,因为ObjectStudio可能会更改以下文件: OStudio Ini文件OStudio图片文件Cincom和...

    网管教程 从入门到精通软件篇.txt

    CIN:OS/2改变控制文件用于跟踪INI文件中的变化 CLASS:Java类文件 CLP:Windows 剪贴板文件 CLL:Crick Software Clicker文件 CLS:Visual Basic类文件 CMD:Windows NT,OS/2的命令文件;DOS CD/M命令文件;...

Global site tag (gtag.js) - Google Analytics