最终是通过Properties来实现的,比直接字符流来读取多了很多便利. 可以直接定位到域,根据键就能拿到值.而不是遍历判断来取值
/*
* IniReader.java
* 用Java读取INI文件(带section的)
* 示例:
* tmp.IniReader reader = new tmp.IniReader("E:\\james\\win.ini");
* out.println(reader.getValue("TestSect3", "kkk 6"));
*/
package tmp;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Properties;
public class IniReader {
protected HashMap sections = new HashMap();
private transient String currentSecion;
private transient Properties current;
public IniReader(String filename) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(filename));
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("\\[.*\\]")) {
currentSecion = line.replaceFirst("\\[(.*)\\]", "$1");
current = new Properties();
sections.put(currentSecion, current);
} else if (line.matches(".*=.*")) {
if (current != null) {
int i = line.indexOf('=');
String name = line.substring(0, i);
String value = line.substring(i + 1);
current.setProperty(name, value);
}
}
}
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;
}
}
ini文件如下:
[TestSect1]
kkk 1=VVVVVVVVVVV1
kkk 2=VVVVVVVVVVV2
[TestSect2]
kkk 3=VVVVVVVVVVV3
kkk 4=VVVVVVVVVVV4
[TestSect3]
kkk 5=VVVVVVVVVVV5
kkk 6=VVVVVVVVVVV6
分享到:
相关推荐
1. **读取文件**:首先,`IniReader`类会使用`BufferedReader`或其他文件流API打开并读取INI文件内容。 2. **处理编码**:为了正确处理中文字符,`IniReader`可能使用`InputStreamReader`,并指定UTF-8或其他合适的...
在Java中,没有内置的库来直接处理Ini文件,但我们可以利用Java的I/O流和字符串处理功能来实现读取Ini文件的功能。下面将详细介绍如何在Java中读取Ini文件。 首先,我们需要了解Ini文件的基本结构。Ini文件由多个节...
在这个场景中,我们有一个名为“java读取ini文件jar”的压缩包,它包含了一个示例,帮助开发者了解如何在Java中读取Ini文件。 首先,我们需要引入能够处理Ini文件的第三方库。一个常用的库是Apache Commons ...
在Java编程中,读取INI文件是一个常见的任务,特别是在配置管理或者系统设置中。INI文件是一种简单的文本格式,用于存储键值对,类似于Windows系统的配置文件。本篇将深入探讨如何在Java中读取和操作INI文件,以及...
要使用Java读取INI文件,首先我们需要了解INI文件的基本结构。INI文件由多个节(Section)组成,每个节内有若干键值对(Key-Value Pairs)。例如: ```ini [Section1] Key1=Value1 Key2=Value2 [Section2] Key3=...
ini4j库不仅能够读取INI文件,还能创建、修改和保存这些文件,为开发者提供了灵活且易于使用的API。 二、功能特性 1. **读取INI文件**:ini4j提供了`Ini`类,可以轻松加载和解析INI文件,获取节和键值对。 2. **...
要读取Ini文件,首先创建一个`IniConfiguration`实例,并加载文件: ```java import org.apache.commons.configuration2.Configuration; import org.apache.commons.configuration2.ini.IniConfiguration; import ...
读取INI文件的基本步骤是: 1. 创建一个`Ini`对象,通常通过`IniFile`类的构造函数完成,传入INI文件的路径作为参数。 2. 使用`getSection`方法获取指定节(section)。 3. 在获取的节对象上使用`get`方法获取键...
- 如果不想依赖第三方库,可以使用`java.io`和`java.util`包中的类自定义读写INI文件。通过`BufferedReader`和`BufferedWriter`读写文件,利用`HashMap`或`Properties`对象来存储和操作配置信息。 7. **性能和效率...
2. **Java读取INI文件**: 使用Java,可以使用`java.io`包中的`BufferedReader`或`Scanner`类来逐行读取文件。每一行被解析为键值对或节。关键在于正确识别和处理注释、键值对和节的边界。 3. **Java写入INI文件**...
本文将深入探讨如何使用 Java 语言来读取和操作 INI 文件。 1. INI 文件结构 INI 文件由多个节(Section)组成,每个节下包含多对键值对(Key-Value Pairs)。一个简单的 INI 文件示例如下: ``` [Section1] Key1 =...
在实际项目中,可以通过编写单元测试或者集成测试来确保ini文件读取和解析功能的正确性。使用`testfile`作为测试数据,编写测试用例,检查读取的配置信息是否与预期一致。 总之,在Android项目中读取`ini`配置文件...
4. **读取Ini文件**:读取文件时,逐行读取并使用正则表达式解析每一行。如果匹配到节名,将创建一个新的内部HashMap;如果匹配到键值对,将键值对添加到当前节的HashMap中。 5. **写入Ini文件**:在写入时,需要...
这个压缩包"读取ini文件类.rar"可能包含了一个用于读取和操作ini文件的类库或示例代码,帮助开发者更方便地处理这类文件。 在编程中,读取ini文件通常涉及到以下几个关键知识点: 1. 文件I/O操作:这是所有文件...
本篇文章将深入探讨如何用Java实现一个 Ini文件处理类,主要涉及以下几个知识点: 1. **Ini文件结构**:Ini文件由多个节(Section)组成,每个节内包含多个键值对(Key-Value Pairs)。例如: ``` [Section1] ...
`ini4j`是一个小巧的Java库,它提供了一种方便的方式来处理INI文件,包括创建、读取和修改配置项。 1. **安装ini4j库** 要使用ini4j,首先需要将其添加到项目依赖中。如果你的项目使用Maven,可以在`pom.xml`中...
1. **读取INI文件**:`ini4j`提供了简单的API,可以轻松读取INI文件中的各个节(section)和键值对(key-value pairs)。例如,通过`Wini`类,你可以加载整个INI文件到内存中,并通过节名和键名来访问特定的数据。 ...
除了上述方法,还可以使用其他语言(如Java、Ruby等)的库或自定义解析逻辑来读取`.ini`文件。关键在于理解文件结构,并使用适当的字符串处理或解析工具。 6. 安全性和权限: 在实际应用中,读取配置文件时要注意...
"基于Java的INI文件操作类库 ini4j.zip" 指的是一款名为`ini4j`的Java类库,专门用于处理INI文件。INI文件是一种常见的配置文件格式,常用于存储软件的设置信息。`ini4j`提供了方便的API,使得在Java应用程序中读写...