`
xumingrencai
  • 浏览: 1182508 次
文章分类
社区版块
存档分类
最新评论

java 读写 ini 文件

 
阅读更多

package com.ini;

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 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("//[//s*.*//s*//]");
m = p.matcher((strLine));
if (m.matches()) {
p = Pattern.compile("//[//s*" + section + "//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("//[//s*.*//s*//]");
m = p.matcher((strLine));
if (m.matches()) {
p = Pattern.compile("//[//s*" + section + "//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 + "/r/n";
while ((allLine = bufferedReader.readLine()) != null) {
fileContent += allLine + "/r/n";
}
bufferedReader.close();
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file, false));
bufferedWriter.write(fileContent);
bufferedWriter.flush();
bufferedWriter.close();

return true;
}
}
fileContent += allLine + "/r/n";
}
} catch (IOException ex) {
throw ex;
} finally {
bufferedReader.close();
}
return false;
}

/**
* 程序测试
*/
public static void main(String[] args) {
try {
String value = ConfigurationFile.getProfileString("d:/1.ini", "Settings", "SampSize", "abc");
System.out.println(value);
String defaultValue = ConfigurationFile.getProfileString("d:/1.ini", "Settings", "SampSizeddd", "abc");
System.out.println(defaultValue);
System.out.println(ConfigurationFile.setProfileString("d:/1.ini", "Settings", "SampSize", "111"));
} catch (IOException e) {
System.out.println(e.toString());
}
}
}

分享到:
评论

相关推荐

    Java 读写Ini文件

    Java 读写Ini文件,java读写ini文件的项目小例子。 运行类文件在根目录ini文件夹下src/com文件夹中start.java文件 相关jar包在根目录ini文件夹下bin文件夹中

    java读写ini文件

    java读写ini文件的项目小例子。 运行类文件在根目录ini文件夹下src/com文件夹中start.java文件 相关jar包在根目录ini文件夹下bin文件夹中

    Java读写ini文件代码示例

    主要介绍了Java读写ini文件代码示例,分享了相关代码示例及相关注释,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

    JAVA写的读取ini文件

    里面用到了树。表格,以及右键,另存为等,还有树和表格编辑器的编写,并且实现了TreeModel接口,附ini文件,请先执行,“文件--打开”操作

    JAVA使用JNI读写INI文件

    JAVA使用JNI读写INI文件的实例。 JAVA本身并没有读写INI文件的现成方法,有些人自己编写方法来读写INI文件,但是这样的方法或多或少的存在着一些问题。此示例旨在利用本地的WIN32API函数来读写INI文件,这样可以保证...

    java平台读写ini配置文件(可读网络配置文件)

    这是个好东冬,java平台使用,可以读本地和网络配置文件、存储本地配置文件,方便!

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

    java写的关于INI文件的读写,并含有swing 组件,能够对ini文件 进行读写,并能读出注释,并且能对文件 进行增加,删除操作

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

    NULL 博文链接:https://rangerwolf.iteye.com/blog/1222882

    java使用IniEditor读写INI文件inieditor源码

    java使用IniEditor读写INI文件inieditor源码

    ini4j读取ini文件类

    java读取ini文件的工具,实测很好用,分享给大家

    python读写ini文件示例(python读写文件)

    很类似java的properties文件xml文件复制代码 代码如下:db_config.ini[baseconf]host=127.0.0.1port=3306user=rootpassword=rootdb_name=evaluting_sys[concurrent]processor=20 对应的python代码 复制代码 代码如下:...

    读写ini配置文件

    代码用java实现了读写ini配置文件,根据配置文件中的变量名称,设置该变量的值。

    Java Properties 解决中文乱码和顺序读写.docx

    像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigParse,方便程序员或用户通过该类的方法来修改.ini配置文件。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的...

    ini读写操作,也可以编辑其它文本格式的配置文件。

    从vb.net转过来的,刚学习java,编写ini读写文件,在网上找了不少,都不能用,只有https://www.iteye.com/blog/bdk82924-1287930只能改写,不能创建新键值。研究了以后终于完成了。希望对大家有所帮助,第一次写,请...

    java jni 传递汉字参数,读写ini

    java jni 传递汉字参数,包括java传入dll 从dll传出到java 读写ini 包括全部 java 代码 工程文件 全部vc++6.0 Dll 代码 工程文件 找了好久资料才完成的,传上来省的大家再走弯路。

    Ini for Java

    Windows中读写INI的相关API又不支持“UTF-8 Bom”格式的文件。这个太坑了。所以INI文件,建议你就使用GB2312编码的。 2. IniEditor.java原本不支持Section后面写注释,你即使写了注释,用IniEditor一保存注释就给...

    conf:使用Java读取各种配置文件的类库

    这是一个解决Java开发中读取配置文件每次都要重写的困惑。 特性 开箱即用,简单方便 支持JDK1.6+ 无需过多依赖,按需添加 状态 [已完成] 解析Properties配置文件 [待完成] 解析Xml配置文件 [待完成] 解析Ini配置...

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

    而在 Java 中, Java 支持的是 .properties 文件的读写。 JDK 内置的 Java.util.Properties 类为我们操作 .properties 文件提供了便利。 一. .properties 文件的形式 # 以下为服务器、数据库信息 dbPort = ...

    Java_Properties_类读取配置文件信息

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

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

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

Global site tag (gtag.js) - Google Analytics