..properties文件的形式
#以下为服务器、数据库信息
dbPort=localhost
databaName=mydb
dbUrName=root
dbPassword=root
#以下为数据库表信息
dbTable=mytable
#以下为服务器信息
ip=192.168.0.9
在上面的文件中我们假设该文件名为:ties文件。其中#开始的一行为注释
信息;在等号“=”左边的我们称之为key;等号“=”右边的我们称之为value。(其
实就是我们常说的键-值对)key应该是我们程序中的变量。而value是我们根据实际情
况配置的。
二.JDK中的Properties类Properties类存在于胞中,该类继承自
Hashtable,它提供了几个主要的方法:
1.getProperty(Stringkey),用指定的键在此属性列表中搜索属性。也就是通过参
数key,得到key所对应的value。
2.load(InputStreaminStream),从输入流中读取属性列表(键和元素对)。通过对指
定的文件(比如说上面的ties文件)进行装载来获取该文件中的所有键-值
对。以供getProperty(Stringkey)来搜索。
3.tProperty(Stringkey,Stringvalue),调用Hashtable的方法put。他通过
调用基类的put方法来设置键-值对。
4.store(OutputStreamout,Stringcomments),以适合使用load方法加载到
Properties表中的格式,将此Properties表中的属性列表(键和元素对)写入输出流。与
load方法相反,该方法将键-值对写入到指定的文件中去。
5.clear(),清除所有装载的键-值对。该方法在基类中提供。
有了以上几个方法我们就可以对.properties文件进行操作了!
三.代码实例
packageconfiguration;
putStream;
tFoundException;
tputStream;
ption;
ties;
/***//**
*读取properties文件
*@authorQutr
*
*/
publicclassConfiguration
...{
privatePropertiespropertie;
privateFileInputStreaminputFile;
privateFileOutputStreamoutputFile;
/***//**
*初始化Configuration类
*/
publicConfiguration()
...{
propertie=newProperties();
}
/***//**
*初始化Configuration类
*@paramfilePath要读取的配置文件的路径+名称
*/
publicConfiguration(StringfilePath)
...{
propertie=newProperties();
try...{
inputFile=newFileInputStream(filePath);
(inputFile);
();
}catch(FileNotFoundExceptionex)...{
n("读取属性文件--->失败!-原因:文件路径错误或者文
件不存在");
tackTrace();
}catch(IOExceptionex)...{
n("装载文件--->失败!");
tackTrace();
}
}//endReadConfigInfo(...)
/***//**
*重载函数,得到key的值
*@paramkey取得其值的键
*@returnkey的值
*/
publicStringgetValue(Stringkey)
...{
if(nsKey(key))...{
Stringvalue=perty(key);//得到某一属性的值
returnvalue;
}
el
return"";
}//endgetValue(...)
/***//**
*重载函数,得到key的值
*@paramfileNameproperties文件的路径+文件名
*@paramkey取得其值的键
*@returnkey的值
*/
publicStringgetValue(StringfileName,Stringkey)
...{
try...{
Stringvalue="";
inputFile=newFileInputStream(fileName);
(inputFile);
();
if(nsKey(key))...{
value=perty(key);
returnvalue;
}el
returnvalue;
}catch(FileNotFoundExceptione)...{
tackTrace();
return"";
}catch(IOExceptione)...{
tackTrace();
return"";
}catch(Exceptionex)...{
tackTrace();
return"";
}
}//endgetValue(...)
/***//**
*清除properties文件中所有的key和其值
*/
publicvoidclear()
...{
();
}//endclear();
/***//**
*改变或添加一个key的值,当key存在于properties文件中时该key的值被value
所代替,
*当key不存在时,该key的值是value
*@paramkey要存入的键
*@paramvalue要存入的值
*/
publicvoidtValue(Stringkey,Stringvalue)
...{
perty(key,value);
}//endtValue(...)
/***//**
*将更改后的文件数据存入指定的文件中,该文件可以事先不存在。
*@paramfileName文件路径+文件名称
*@paramdescription对该文件的描述
*/
publicvoidsaveFile(StringfileName,Stringdescription)
...{
try...{
outputFile=newFileOutputStream(fileName);
(outputFile,description);
();
}catch(FileNotFoundExceptione)...{
tackTrace();
}catch(IOExceptionioe)...{
tackTrace();
}
}//endsaveFile(...)
publicstaticvoidmain(String[]args)
...{
Configurationrc=newConfiguration(".ties");//相对路
径
Stringip=ue("ipp");//以下读取properties文件的值
Stringhost=ue("host");
Stringtab=ue("tab");
n("ip="+ip+"ip-testleng="+"ip-test".length());//
以下输出properties读出的值
n("ip'slength="+());
n("host="+host);
n("tab="+tab);
Configurationcf=newConfiguration();
Stringipp=ue(".ties","ip");
n("ipp="+ipp);
//();
ue("min","999");
ue("max","1000");
le(".ties","test");
//ConfigurationsaveCf=newConfiguration();
//ue("min","10");
//ue("max","1000");
//le(".ties");
}//endmain()
}//endclassReadConfigInfo
四.小结通过上面的例子不难看出,在Java中操作配置文件是非常简单的。在一个需要用
到大量配置信息的模块或系统里,我们有必要封装一个专门的类来共使用。通过最后的main
函数调用,相信大家可以看出该类的用法。不足指出希望大家多多指点。
Javaproperties文件的操作
----------------------------------------------------
Java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为
*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties文件
中,可以用"#"来作注释,properties文件在Java编程中用到的地方很多,操作很方便。下
面是一个操作Javaproperties文件的例子,给出了操作方法和properties文件。从中可以
看到如何读取properties文件,并应用读取出来的值,是学习操作properties文件的好例
子。
一、properties文件
ties
------------------------------------------------------
##工商报表应用IcisReport的配置文件
##作者:雷智民
##日期:2006年11月21日
说明:业务系统TopIcis和报表系统IcisReport是分离的
#可分开部署到不同的服务器上,也可以部署到同一个服务
#器上;IcisReprot作为独立的web应用程序可以使用任何
#的Servlet容器或者J2EE服务器部署并单独运行,也可以
#通过业务系统的接口调用作为业务系统的一个库来应用.
##IcisReport的ip
=192.168.3.143
#IcisReport的端口
=8080
#IcisReport的上下文路径
tPath=/IcisReport
------------------------------------------------------
二、操作properties文件的Java方法
下面是一个操作properties文件的方法
/***//**
*@return获取IcisReport报表应用的URL
*/
privateStringgetIcisReportURL()...{
StringicisReportURL="";//IcisReport报表应用的URL
StringicisReportServerIP="";//IcisReport服务器的IP
StringicisReportServerPort="";//IcisReport服务器的服务端口
StringicisReportContextPath="";//IcisReport应用的ContextPath
Propertiesprop=newProperties();
InputStreamin;
try...{
in=getClass().getResourceAsStream("/ties");
(in);
SetkeyValue=();
for(Iteratorit=or();t();)...{
Stringkey=(String)();
if((""))...{
icisReportServerIP=(String)(key);
}elif((""))...{
icisReportServerPort=(String)(key);
}elif(("tPath"))...{
icisReportContextPath=(String)(key);
}
}
}catch(Exceptione)...{
("IO读取出错,找不到ties!");
}
if(().equals(""))...{
log
.error("请检查配置文件ties中的
项的值是否正确!");
}
if(().equals(""))...{
log
.error("请检查配置文件ties中的
项的值是否正确!");
}
if(().equals(""))...{
log
.error("请检查配置文件ties中的
项的值是否正确!");
}
icisReportURL=""+()+":"
+()+();
("获取的icisReportURL="+icisReportURL);
returnicisReportURL;
}
总结:Java的properties文件需要放到classpath下面,这样程序才能读取到,有关
classpath实际上就是Java类或者库的存放路径,在Java工程中,properties放到class
文件一块。在web应用中,最简单的方法是放到web应用的WEB-INFclass目录下即可,
也可以放在其他文件夹下面,这时候需要在设置classpath环境变量的时候,将这个文件夹
路径加到classpath变量中,这样也也可以读取到。在此,你需要对classpath有个深刻理
解,classpath绝非系统中刻意设定的那个系统环境变量,WEB-INFclass其实也是,Java
工程的class文件目录也是
本文发布于:2022-12-28 13:28:53,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/46908.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |