`

java 读写ini文件

 
阅读更多

原贴地址 http://www.diybl.com/course/3_program/java/javashl/200726/10835.html

在java中,配置文件一般主要是两种形式:xml文件或者property文件。但大部分人都习惯使用ini文件,而且ini文件的分节以及注释功能,比起xml,也是易懂易用的。

在vc中类库中有读写ini文件的标准函数。在dephi或其他语言中,也可以用windows的api函数来读写ini文件。但在java中似乎没有现成的类和方法可供使用。虽然java可以通过加载dll文件的方法来调用windows的api,但总觉得不够正宗。

于是自己写了个读写ini配置文件的类,供大家参考。

packagemytools;

importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;

/***//***//***//**
*这是个配置文件操作类,用来读取和设置ini配置文件
*
@author由月
*
@version2004-08-18
*/

publicfinalclassConfigurationFile......{
/***//***//***//**
*从ini配置文件中读取变量的值
*
@paramfile配置文件的路径
*
@paramsection要获取的变量所在段名称
*
@paramvariable要获取的变量名称
*
@paramdefaultValue变量名称不存在时的默认值
*
@return变量的值
*
@throwsIOException抛出文件操作可能出现的io异常
*/

publicstaticStringgetProfileString(
Stringfile,
Stringsection,
Stringvariable,
StringdefaultValue)
throwsIOException......{
StringstrLine,value
="";
BufferedReaderbufferedReader
=newBufferedReader(newFileReader(file));
booleanisInSection=false;
try......{
while((strLine=bufferedReader.readLine())!=null)......{
strLine
=strLine.trim();
strLine
=strLine.split("[;]")[0];
Patternp;
Matcherm;
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
="";
returnvalue;
}

}
elseif(strArray.length==2)......{
value
=strArray[0].trim();
if(value.equalsIgnoreCase(variable))...{
value
=strArray[1].trim();
returnvalue;
}

}
elseif(strArray.length>2)...{
value
=strArray[0].trim();
if(value.equalsIgnoreCase(variable))...{
value
=strLine.substring(strLine.indexOf("=")+1).trim();
returnvalue;
}

}

}

}

}
finally...{
bufferedReader.close();
}

returndefaultValue;
}

/***//**
*修改ini配置文件中变量的值
*
@paramfile配置文件的路径
*
@paramsection要修改的变量所在段名称
*
@paramvariable要修改的变量名称
*
@paramvalue变量的新值
*
@throwsIOException抛出文件操作可能出现的io异常
*/

publicstaticbooleansetProfileString(
Stringfile,
Stringsection,
Stringvariable,
Stringvalue)
throwsIOException...{
StringfileContent,allLine,strLine,newLine,remarkStr;
StringgetValue;
BufferedReaderbufferedReader
=newBufferedReader(newFileReader(file));
booleanisInSection=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];
Patternp;
Matcherm;
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();
BufferedWriterbufferedWriter
=
newBufferedWriter(newFileWriter(file,false));
bufferedWriter.write(fileContent);
bufferedWriter.flush();
bufferedWriter.close();

returntrue;
}

}

fileContent
+=allLine+" ";
}

}
catch(IOExceptionex)...{
throwex;
}
finally...{
bufferedReader.close();
}

returnfalse;
}

/***//**
*程序测试
*/

publicstaticvoidmain(String[]args)...{
//Stringvalue=Config.getProfileString("sysconfig.ini","Option","OracleDB","default");
//System.out.println(value);
try...{
System.out.println(ConfigurationFile.setProfileString(
"d:/1.ini","Settings","SampSize","111"));
}
catch(IOExceptione)...{
System.out.println(e.toString());
}


}

}

这个类可以读和写ini文件,不过先说明一点:它识别ini文件中的“;”为注释符,而不是识别“#”为注释符。

分享到:
评论

相关推荐

    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写的关于INI文件的读写,并含有swing 组件,能够对ini文件 进行读写,并能读出注释,并且能对文件 进行增加,删除操作

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

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

    用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代码 复制代码 代码如下:...

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

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

    读写ini配置文件

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

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

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

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

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

    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