`
JavaSam
  • 浏览: 951725 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 读取.ini配置文件工具类

    博客分类:
  • JAVA
 
阅读更多
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Properties;

@SuppressWarnings("rawtypes")
public class IniReader {
	protected HashMap sections = new HashMap();
	private transient String currentSecion;
	private transient Properties current;

	/**
	 * 构造函数
	 * @param filename
	 * @throws IOException
	 */
	public IniReader(String filename) throws IOException {
		BufferedReader reader = new BufferedReader(new FileReader(filename));
		read(reader);
		reader.close();
	}
    /**
     * 读取文件
     * @param reader
     * @throws IOException
     */
	protected void read(BufferedReader reader) throws IOException {
		String line;
		while ((line = reader.readLine()) != null) {
			parseLine(line);
		}
	}

	/**
	 * 解析配置文件行
	 * @param line
	 */
	@SuppressWarnings("unchecked")
	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);
			}
		}
	}
	/**
	 * 获取值
	 * @param section
	 * @param name
	 * @return
	 */
	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;
	}
    /**
     * 是否包含key
     * @param section
     * @param name
     * @return
     */
	public boolean containsKey(String section,String key) {
		Properties p = (Properties) sections.get(section);
		return p.contains(key);
	}
}

 

 

1
0
分享到:
评论
2 楼 yurui829 2017-03-05  
解析配置行那等号前后有可能有空格,改为如下比较好:
String[] lineArray = line.split("=");
String name = lineArray[0].trim(); 
String value = lineArray[1].trim(); 
1 楼 Waternoodle 2016-04-19  
最后的"是否包含key"应该用containsKey

相关推荐

    Java读取Ini文件

    Ini文件是一种配置文件格式,常用于Windows系统中存储应用程序的设置和配置信息。在Java中,没有内置的库来直接处理Ini文件,但我们可以利用Java的I/O流和字符串处理功能来实现读取Ini文件的功能。下面将详细介绍...

    java ini配置文件读取

    Java INI配置文件读取是Java开发中常见的一项任务,主要涉及到对INI格式配置文件的解析、读取、以及可能的修改操作。INI文件是一种简单的文本格式,常用于存储应用程序的配置参数,其结构通常由多个节(Section)...

    java读取ini文件jar

    Java语言在处理各种类型的文件时提供了丰富的库支持, Ini文件是一种常见的配置文件格式,通常用于存储应用程序的设置或参数。虽然Java标准库没有内置对Ini文件的直接支持,但可以通过第三方库来实现读取和操作Ini...

    org.dtools.javaini-v1.1.00.jar

    在Java开发中,我们经常需要与各种配置文件打交道,其中INI文件是一种常见的配置文件格式,尤其在Windows系统和一些跨平台应用中广泛应用。INI文件以简洁明了的方式存储键值对,便于程序读取和修改。然而,Java标准...

    用java读取ini文件(支持中文)

    在Java编程环境中,读取INI配置文件是一项常见的任务,这些文件通常用于存储应用程序的设置或配置参数。由于INI文件格式简单且易于理解,因此在许多系统中被广泛使用。本篇我们将深入探讨如何使用Java有效地读取包含...

    java读取INI文件

    要使用Java读取INI文件,首先我们需要了解INI文件的基本结构。INI文件由多个节(Section)组成,每个节内有若干键值对(Key-Value Pairs)。例如: ```ini [Section1] Key1=Value1 Key2=Value2 [Section2] Key3=...

    java读取配置文件

    `ResourceBundle`是Java提供的一种国际化的资源管理工具,也可以用来读取配置文件。它支持多种语言环境,适合处理多语言配置。不过,它默认只支持.properties格式: ```java ResourceBundle bundle = ...

    配置文件读取工具类(Java)

    为了方便地读取和管理这些配置文件,开发者会创建专门的工具类。以下是一个关于如何构建和使用配置文件读取工具类的详细说明。 1. **配置文件格式** 配置文件通常使用如INI、XML或JSON等易于解析的格式。在Java中...

    ini4j读取ini文件类

    ini4j是一个Java库,专门设计用于处理INI配置文件,这是一种常见的在Windows系统和其他应用程序中使用的文本格式。本文将深入探讨ini4j库的功能、如何使用它来读取和写入INI文件,以及其在实际项目中的应用。 一、...

    ini4j操作_ini4j下载_ini4j_java_

    ini4j是一个Java库,专为处理.INI配置文件而设计。它提供了丰富的API,使得在Java应用程序中读写、编辑.INI文件变得极其便捷。本文将深入探讨ini4j库的功能、用法以及如何在Java项目中集成和使用ini4j。 1. **ini4j...

    Linux编程读取ini文件

    在实际应用中,读取配置文件时要注意安全问题,确保只有授权的程序能访问这些文件。在Linux中,可以通过文件权限来控制访问。 总的来说,读取`.ini`文件是多语言编程中常见的任务,具体实现取决于所使用的编程语言...

    java读取ini文件

    在Java编程中,读取INI文件是一个常见的任务,特别是在配置管理或者系统设置中。INI文件是一种简单的文本格式,用于存储键值对,类似于Windows系统的配置文件。本篇将深入探讨如何在Java中读取和操作INI文件,以及...

    myjava.rar_MyMemo.INI_java.rar

    2. **配置文件处理**:学习如何在Java程序中读取、解析和写入INI文件,了解Properties类或者其他第三方库的使用。 3. **编码和解码**:掌握自定义编码格式的概念,以及如何在Java中实现编码和解码算法。 4. **文件...

    org.dtools.javaini-v1.1.00-src.7z

    在Java编程中,有时我们需要处理配置文件,其中INI文件是一种常见的格式,它以键值对的形式存储数据,通常用于存储软件的设置或配置信息。`org.dtools.javaini`是一个针对Java平台的开源库,专门用于读写INI文件,...

    Ini配置文件读写.zip

    Ini配置文件是Windows系统中常见的文本格式,用于存储应用程序的设置和配置信息。它们以`.ini`为扩展名,结构简单,易于理解和编辑。本文将深入探讨Ini配置文件的读写操作,包括基本结构、API函数以及在编程中的应用...

    Java写的关于INI文件读写,以及其它操作

    2. **Java读取INI文件**: 使用Java,可以使用`java.io`包中的`BufferedReader`或`Scanner`类来逐行读取文件。每一行被解析为键值对或节。关键在于正确识别和处理注释、键值对和节的边界。 3. **Java写入INI文件**...

    读取ini文件类.rar

    ini文件是一种常见的配置文件...总的来说,这个"读取ini文件类.rar"压缩包可能提供了一个实用的工具,帮助开发者简化与ini文件交互的过程。通过学习和使用其中的类,可以更高效地管理和读写ini文件,提升项目开发效率。

    ini4j-0.5.2-SNAPSHOT-all.zip

    ini4j是一个Java库,专门用于处理.INI配置文件。这个“ini4j-0.5.2-SNAPSHOT-all.zip”压缩包包含了ini4j的0.5.2-SNAPSHOT版本的所有组件,它是从官方网站下载的,因此可以确保是最新且可靠的。下面将详细介绍ini4j...

    操作ini文件的类 java实现

    Ini文件是一种常见的配置文件格式,主要用于存储简单的键值对数据,常见于Windows系统中的应用程序配置。...通过这个类,开发者可以方便地在Java应用中管理和操作Ini配置文件,实现配置的读取和写入。

Global site tag (gtag.js) - Google Analytics