原贴地址 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文件的项目小例子。 运行类文件在根目录ini文件夹下src/com文件夹中start.java文件 相关jar包在根目录ini文件夹下bin文件夹中
java读写ini文件的项目小例子。 运行类文件在根目录ini文件夹下src/com文件夹中start.java文件 相关jar包在根目录ini文件夹下bin文件夹中
主要介绍了Java读写ini文件代码示例,分享了相关代码示例及相关注释,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
里面用到了树。表格,以及右键,另存为等,还有树和表格编辑器的编写,并且实现了TreeModel接口,附ini文件,请先执行,“文件--打开”操作
JAVA使用JNI读写INI文件的实例。 JAVA本身并没有读写INI文件的现成方法,有些人自己编写方法来读写INI文件,但是这样的方法或多或少的存在着一些问题。此示例旨在利用本地的WIN32API函数来读写INI文件,这样可以保证...
java写的关于INI文件的读写,并含有swing 组件,能够对ini文件 进行读写,并能读出注释,并且能对文件 进行增加,删除操作
这是个好东冬,java平台使用,可以读本地和网络配置文件、存储本地配置文件,方便!
NULL 博文链接:https://rangerwolf.iteye.com/blog/1222882
java使用IniEditor读写INI文件inieditor源码
java读取ini文件的工具,实测很好用,分享给大家
很类似java的properties文件xml文件复制代码 代码如下:db_config.ini[baseconf]host=127.0.0.1port=3306user=rootpassword=rootdb_name=evaluting_sys[concurrent]processor=20 对应的python代码 复制代码 代码如下:...
像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigParse,方便程序员或用户通过该类的方法来修改.ini配置文件。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的...
代码用java实现了读写ini配置文件,根据配置文件中的变量名称,设置该变量的值。
java jni 传递汉字参数,包括java传入dll 从dll传出到java 读写ini 包括全部 java 代码 工程文件 全部vc++6.0 Dll 代码 工程文件 找了好久资料才完成的,传上来省的大家再走弯路。
从vb.net转过来的,刚学习java,编写ini读写文件,在网上找了不少,都不能用,只有https://www.iteye.com/blog/bdk82924-1287930只能改写,不能创建新键值。研究了以后终于完成了。希望对大家有所帮助,第一次写,请...
Windows中读写INI的相关API又不支持“UTF-8 Bom”格式的文件。这个太坑了。所以INI文件,建议你就使用GB2312编码的。 2. IniEditor.java原本不支持Section后面写注释,你即使写了注释,用IniEditor一保存注释就给...
这是一个解决Java开发中读取配置文件每次都要重写的困惑。 特性 开箱即用,简单方便 支持JDK1.6+ 无需过多依赖,按需添加 状态 [已完成] 解析Properties配置文件 [待完成] 解析Xml配置文件 [待完成] 解析Ini配置...
而在 Java 中, Java 支持的是 .properties 文件的读写。 JDK 内置的 Java.util.Properties 类为我们操作 .properties 文件提供了便利。 一. .properties 文件的形式 # 以下为服务器、数据库信息 dbPort = ...
因为他内部有一个ConfigParser 类来支持.ini 文件的读写,根据该类提供的方法程序员可以自由的来操作.ini 文件。而在Java 中,Java 支持的是.properties 文件的读写。JDK 内置的java.util.Properties 类为我们操作....
Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,...