`
brmrk
  • 浏览: 30797 次
  • 性别: 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的INI文件操作类库 ini4j.zip

    `ini4j`提供了方便的API,使得在Java应用程序中读写、修改INI文件变得简单。 **描述解析:** "基于Java的INI文件操作类库 [ini4j].zip" 进一步确认了这个压缩包内容是`ini4j`类库的源代码或二进制文件。`[ini4j]`...

    initestt_INI文件读取_

    在Java中,可以使用`java.util.Properties`类,它能够读写.properties文件,与INI文件类似。 总的来说,Linux环境下读取INI文件并不困难,关键在于选择合适的编程语言和库,并理解这些库提供的API。通过编写自定义...

    读写ini配置文件

    要修改ini文件,首先创建一个Ini对象,然后通过其方法设置键值对,最后保存更改: ```java import org.ini4j.Wini; import java.io.File; public class IniWriter { public static void main(String[] args) ...

    商业编程-源码-INI文件读写类.zip

    6. **类设计**:这个压缩包中的“INI文件读写类”可能是面向对象编程的一个实例,包含读取、写入、更新和删除配置项等方法。类的设计应遵循单一职责原则,使代码易于维护和扩展。 7. **API设计**:如果这个类是作为...

    利用INI文件

    1. **Python**:Python有`configparser`模块,可以轻松地读写INI文件。 2. **C++**:可以使用第三方库如`TinyXML`或`pugixml`来解析和操作INI文件,尽管它们原本设计用于XML,但也可以处理类似结构的文本文件。 3....

    java配置文件 beta v3.0

    ini文件是源自Windows系统的简单配置文件格式,由键值对组成,通常用于存储应用设置。它的语法直观易读,但功能相对有限,不支持复杂的嵌套结构。 txt文件则是一种通用文本文件,可以用于任意形式的数据存储,配置...

    linux 下java的串口,并口开发(RXTXcomm.jar)

    3. **读写数据**:使用`SerialPort`接口的`getInputStream`和`getOutputStream`方法获取输入流和输出流,进而实现数据的读取和发送。 4. **事件监听**:可以通过注册监听器来实时响应串口的数据接收或状态变化。 5. ...

    java开源包4

    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上百实例源码以及开源项目源代码

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用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资源包01

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

    通用应用程序配置文件框架

    其次,该框架可能包含了文件读写功能,比如使用Java的`java.io`或`java.nio`包,C#的`System.IO`,Python的`open()`函数等,来读取配置文件。同时,框架可能会封装对特定格式(如XML或JSON)的解析库,如Java的JAXB...

    SimpleIni.rar

    3. **跨平台兼容性**:由于INI文件格式的通用性,SimpleIni可能设计为跨平台,可以在不同的操作系统上运行,如Windows、Linux、MacOS等。 4. **错误处理**:良好的库会处理可能出现的错误,比如文件不存在、权限...

Global site tag (gtag.js) - Google Analytics