转自:http://blog.csdn.net/baggio328/article/details/1780707
在java中,配置文件一般主要是两种形式:xml文件或者property文件。但大部分人都习惯使用ini文件,而且ini文件的分节以及注释功能,比起xml,也是易懂易用的。 在vc中类库中有读写ini文件的标准函数。在dephi或其他语言中,也可以用windows的api函数来读写ini文件。但在java中似乎没有现成的类和方法可供使用。虽然java可以通过加载dll文件的方法来调用windows的api,但总觉得不够正宗。
package mytools; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; /** *//** *//** *//** * 这是个配置文件操作类,用来读取和设置ini配置文件 * @author 由月 * @version 2004-08-18 */ public final class ConfigurationFile ......{ /** *//** *//** *//** * 从ini配置文件中读取变量的值 * @param file 配置文件的路径 * @param section 要获取的变量所在段名称 * @param variable 要获取的变量名称 * @param defaultValue 变量名称不存在时的默认值 * @return 变量的值 * @throws IOException 抛出文件操作可能出现的io异常 */ public static String getProfileString( String file, String section, String variable, String defaultValue) throws IOException ......{ String strLine, value = ""; BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); boolean isInSection = false; try ......{ while ((strLine = bufferedReader.readLine()) != null) ......{ strLine = strLine.trim(); strLine = strLine.split("[;]")[0]; Pattern p; Matcher m; p = Pattern.compile("file://[//s*.*//s*//]"); m = p.matcher((strLine)); if (m.matches()) ......{ p = Pattern.compile("file://[//s*" + section + "file://s*//]"); m = p.matcher(strLine); if (m.matches()) ......{ isInSection = true; } else ......{ isInSection = false; } } if (isInSection == true) ......{ strLine = strLine.trim(); String[] strArray = strLine.split("="); if (strArray.length == 1) ......{ value = strArray[0].trim(); if (value.equalsIgnoreCase(variable)) ......{ value = ""; return value; } } else if (strArray.length == 2) ......{ value = strArray[0].trim(); if (value.equalsIgnoreCase(variable)) ...{ value = strArray[1].trim(); return value; } } else if (strArray.length > 2) ...{ value = strArray[0].trim(); if (value.equalsIgnoreCase(variable)) ...{ value = strLine.substring(strLine.indexOf("=") + 1).trim(); return value; } } } } } finally ...{ bufferedReader.close(); } return defaultValue; } /** *//** * 修改ini配置文件中变量的值 * @param file 配置文件的路径 * @param section 要修改的变量所在段名称 * @param variable 要修改的变量名称 * @param value 变量的新值 * @throws IOException 抛出文件操作可能出现的io异常 */ public static boolean setProfileString( String file, String section, String variable, String value) throws IOException ...{ String fileContent, allLine,strLine, newLine, remarkStr; String getValue; BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); boolean isInSection = false; fileContent = ""; try ...{ while ((allLine = bufferedReader.readLine()) != null) ...{ allLine = allLine.trim(); if (allLine.split("[;]").length > 1) remarkStr = ";" + allLine.split(";")[1]; else remarkStr = ""; strLine = allLine.split(";")[0]; Pattern p; Matcher m; p = Pattern.compile("file://[//s*.*//s*//]"); m = p.matcher((strLine)); if (m.matches()) ...{ p = Pattern.compile("file://[//s*" + section + "file://s*//]"); m = p.matcher(strLine); if (m.matches()) ...{ isInSection = true; } else ...{ isInSection = false; } } if (isInSection == true) ...{ strLine = strLine.trim(); String[] strArray = strLine.split("="); getValue = strArray[0].trim(); if (getValue.equalsIgnoreCase(variable)) ...{ newLine = getValue + " = " + value + " " + remarkStr; fileContent += newLine + " "; while ((allLine = buffer edReader.readLine()) != null) ...{ fileContent += allLine + " "; } bufferedReader.close(); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file, false)); bufferedWriter.write(fileContent); bufferedWriter.flush(); bufferedWriter.close(); return true; } } fileContent += allLine + " "; } }catch(IOException ex)...{ throw ex; } finally ...{ bufferedReader.close(); } return false; } /** *//** * 程序测试 */ public static void main(String[] args) ...{ //String value = Config.getProfileString("sysconfig.ini", "Option", "OracleDB", "default"); //System.out.println(value); try ...{ System.out.println(ConfigurationFile.setProfileString("d:/1.ini", "Settings", "SampSize", "111")); } catch (IOException e) ...{ System.out.println(e.toString()); } } }
相关推荐
以上就是使用Java读写Ini文件的基本方法。在实际项目中,你可能需要根据具体需求进行调整,比如处理异常、文件不存在的情况,或者在读写操作前后进行备份等。确保始终处理好错误和异常,以提高代码的健壮性。
本项目就是一个关于如何使用Java读写INI文件的小例子。 首先,我们需要一个第三方库,如JIni库,它可以方便地进行INI文件操作。在这个项目中,相关jar包可能就是`JIni.jar`,它位于根目录下的`ini`文件夹内的`bin`...
"Java读写ini文件代码示例" Java读写ini文件代码示例是一种常见的文件操作方式,ini文件是一种轻量级的配置文件格式,广泛应用于各种软件和系统中。Java语言可以通过多种方式来读写ini文件,本文将详细介绍Java读写...
在这个Java项目中,开发者创建了一个功能,使得程序能够读取、写入和管理INI文件,同时结合了Swing组件来提供用户界面,使得用户可以直接在图形界面上进行文件操作。 1. **INI文件结构**: INI文件由键值对组成,...
JAVA使用JNI读写INI文件的实例。 JAVA本身并没有读写INI文件的现成方法,有些人自己编写方法来读写INI文件,但是这样的方法或多或少的存在着一些问题。此示例旨在利用本地的WIN32API函数来读写INI文件,这样可以保证...
在Java平台上,处理配置文件是开发过程中的常见任务。...综上所述,Java平台可以通过`ini4j`库轻松地读写INI配置文件,无论是本地还是网络上的文件。合理使用这些功能,可以帮助开发者更高效地管理和维护应用的配置。
本篇我们将深入探讨如何使用Java有效地读取包含中文字符的INI文件,并通过提供的`IniReader.java`源代码进行实例解析。 首先,我们要了解INI文件的基本结构。INI文件由一系列的节(Section)组成,每个节下面可以有...
在Java编程环境中,有时我们需要处理配置文件,其中INI文件是一种常见的格式,用于存储应用程序的设置和配置信息。`IniEditor`是一个Java库,允许开发者方便地读取、修改和写入INI文件。本文将深入探讨如何使用`...
ini4j是一个轻量级的Java框架,提供了方便的方式来操作INI文件。它支持标准的INI文件结构,包括节(section)、键值对(key-value pairs)和注释。ini4j库不仅能够读取INI文件,还能创建、修改和保存这些文件,为...
在Java中,虽然标准库并未提供直接操作Ini文件的API,但我们可以自定义类来实现 Ini文件的读写功能。这个类通常会依赖于正则表达式来解析和构建Ini文件的内容。 在实现Ini文件操作的Java类时,以下是一些关键知识点...
1. **ini文件格式介绍** `ini`文件是一种轻量级的配置文件格式,主要用于存储键值对数据。通常,每个节(section)以方括号`[]`包围,如`[SectionName]`,并在其中定义若干键值对,例如:`key=value`。这种格式易于...
例如,我们可以使用 `ini4j` 库,这是一个轻量级的 Java INI 文件解析库,提供了一套完整的 API 来读写 INI 文件。 3. 引入 ini4j 库 在项目中引入 `ini4j` 库,可以通过 Maven 添加依赖: ```xml <groupId>...
- 如果不想依赖第三方库,可以使用`java.io`和`java.util`包中的类自定义读写INI文件。通过`BufferedReader`和`BufferedWriter`读写文件,利用`HashMap`或`Properties`对象来存储和操作配置信息。 7. **性能和效率...
首先,Java标准库并没有直接支持读写INI文件的API,因此我们需要依赖第三方库或者自定义方法来实现这一功能。在给定的链接中,博主提供了有关如何读取INI文件的一个实例,但具体内容由于链接无法直接访问,我们可以...
在Java中,由于标准库并未提供直接处理Ini文件的API,因此开发者通常需要自定义类或使用第三方库来实现Ini文件的操作。本篇文章将深入探讨如何用Java实现一个 Ini文件处理类,主要涉及以下几个知识点: 1. **Ini...
`ini4j`提供了方便的API,使得在Java应用程序中读写、修改INI文件变得简单。 **描述解析:** "基于Java的INI文件操作类库 [ini4j].zip" 进一步确认了这个压缩包内容是`ini4j`类库的源代码或二进制文件。`[ini4j]`...
本篇文章将详细介绍如何使用Java读写ini配置文件。 1. **理解ini文件格式** ini文件由一系列节(section)和键值对组成。节以方括号`[]`包围,如`[SectionName]`;键值对以等号`=`分隔,如`key=value`。一个简单的...
在Java中,`ini4j`是一个轻量级的开源库,专门用于读写和处理INI文件。这个类库使得开发者能够方便地在Java项目中管理和操作INI配置文件,而无需手动解析文件内容。 `ini4j`库的核心功能包括: 1. **读取INI文件**...
创建一个公共静态类,目的是为了封装读写INI文件的操作,使其在程序中易于调用。以下是一个简单的C#示例: ```csharp using System.IO; using System.Collections.Generic; public static class IniFileHandler {...
很类似java的properties文件xml文件复制代码 代码如下:db_config.ini[baseconf]host=127.0.0.1port=3306user=rootpassword=rootdb_name=evaluting_sys[concurrent]processor=20 对应的python代码 复制代码 代码如下:...