Java Properties 类读取配置文件信息

摘要:
在Java中,Java支持读写。属性文件。内置java。实用程序。JDK的属性类为我们的操作提供了便利。属性文件。该值根据实际情况进行配置。2、 JDK中的Properties类Properties类别存在于单元Java中。实用程序。这个类继承自Hashtable并提供了几个主要方法:1.getProperty。使用指定的键搜索此属性列表中的属性。通过加载指定文件获取指定文件中的所有键值对。3.setProperty,调用Hashtable的方法put。3、 代码实例包配置;导入java.io。文件输入流;导入java.io。文件未找到异常;导入java.io。文件输出流;导入java.io。IOException;导入java.util。属性;/***//***读取属性文件**authorQutr**/publicclassConfiguration…{privateProperties属性;privateFileInputStreaminputFile;private FileOutputStream输出文件;/***//**初始化配置类*/publicConfiguration()…{property=newProperties();}/**/**初始化配置类*@paramfilePath路径+要读取的配置文件的名称*/publicConfiguration…{property=newProperties();尝试{inputFile=newFileInputStream;property.load;inputFile.close();}catch…{System.out.println(“读取属性文件--˃失败!

在我们平时写程序的时候,有些参数是经常改变的,而这种改变不是我们预知的。比如说我们开发了一个操作数据库的模块,在开发的时候我们连接本地的数据库那么IP,数据库名称,表名称,数据库主机等信息是我们本地的,要使得这个操作数据的模块具有通用性,那么以上信息就不能写死在程序里。通常我们的做法是用配置文件来解决。

各种语言都有自己所支持的配置文件类型。比如Python,他支持.ini文件。因为他内部有一个ConfigParser类来支持.ini文件的读写,根据该类提供的方法程序员可以自由的来操作.ini文件。而在Java中,Java支持的是.properties文件的读写。JDK内置的java.util.Properties类为我们操作.properties文件提供了便利。

一..properties文件的形式==========================================================

#以下为服务器、数据库信息

dbPort = localhost

databaseName = mydb

dbUserName = root

dbPassword = root

#以下为数据库表信息

dbTable = mytable

#以下为服务器信息

ip = 192.168.0.9

······

在上面的文件中我们假设该文件名为:test.properties文件。其中#开始的一行为注释信息;在等号“=”左边的我们称之为key;等号“=”右边的我们称之为value。(其实就是我们常说的键-值对)key应该是我们程序中的变量。而value是我们根据实际情况配置的。

二.JDK中的PropertiesProperties类存在于胞Java.util中,该类继承自Hashtable,它提供了几个主要的方法:1.getProperty(Stringkey)用指定的键在此属性列表中搜索属性。也就是通过参数key,得到key所对应的value

2.load(InputStreaminStream),从输入流中读取属性列表(键和元素对)。通过对指定的文件(比如说上面的test.properties文件)进行装载来获取该文件中的所有键-值对。以供getProperty(Stringkey)来搜索。3.setProperty(Stringkey, Stringvalue),调用Hashtable的方法put。他通过调用基类的put方法来设置-值对。

4.store(OutputStreamout, Stringcomments)以适合使用load方法加载到Properties表中的格式,将此Properties表中的属性列表(键和元素对)写入输出流。与load方法相反,该方法将键-值对写入到指定的文件中去。

5.clear(),清除所有装载的-值对。该方法在基类中提供。

有了以上几个方法我们就可以对.properties文件进行操作了!

三.代码实例

Java Properties 类读取配置文件信息第1张packageconfiguration;
Java Properties 类读取配置文件信息第1张
Java Properties 类读取配置文件信息第1张
importjava.io.FileInputStream;
Java Properties 类读取配置文件信息第1张
importjava.io.FileNotFoundException;
Java Properties 类读取配置文件信息第1张
importjava.io.FileOutputStream;
Java Properties 类读取配置文件信息第1张
importjava.io.IOException;
Java Properties 类读取配置文件信息第1张
importjava.util.Properties;
Java Properties 类读取配置文件信息第1张
Java Properties 类读取配置文件信息第9张Java Properties 类读取配置文件信息第10张
/***//**
Java Properties 类读取配置文件信息第11张*读取properties文件
Java Properties 类读取配置文件信息第11张*
@authorQutr
Java Properties 类读取配置文件信息第11张*
Java Properties 类读取配置文件信息第14张
*/

Java Properties 类读取配置文件信息第1张
publicclassConfiguration
Java Properties 类读取配置文件信息第9张Java Properties 类读取配置文件信息第10张
...{
Java Properties 类读取配置文件信息第11张
privatePropertiespropertie;
Java Properties 类读取配置文件信息第11张
privateFileInputStreaminputFile;
Java Properties 类读取配置文件信息第11张
privateFileOutputStreamoutputFile;
Java Properties 类读取配置文件信息第11张
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
/***//**
Java Properties 类读取配置文件信息第11张*初始化Configuration类
Java Properties 类读取配置文件信息第25张
*/

Java Properties 类读取配置文件信息第11张
publicConfiguration()
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
...{
Java Properties 类读取配置文件信息第11张propertie
=newProperties();
Java Properties 类读取配置文件信息第25张}

Java Properties 类读取配置文件信息第11张
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
/***//**
Java Properties 类读取配置文件信息第11张*初始化Configuration类
Java Properties 类读取配置文件信息第11张*
@paramfilePath要读取的配置文件的路径+名称
Java Properties 类读取配置文件信息第25张
*/

Java Properties 类读取配置文件信息第11张
publicConfiguration(StringfilePath)
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
...{
Java Properties 类读取配置文件信息第11张propertie
=newProperties();
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
try...{
Java Properties 类读取配置文件信息第11张inputFile
=newFileInputStream(filePath);
Java Properties 类读取配置文件信息第11张propertie.load(inputFile);
Java Properties 类读取配置文件信息第11张inputFile.close();
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张}
catch(FileNotFoundExceptionex)...{
Java Properties 类读取配置文件信息第11张System.out.println(
"读取属性文件--->失败!-原因:文件路径错误或者文件不存在");
Java Properties 类读取配置文件信息第11张ex.printStackTrace();
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张}
catch(IOExceptionex)...{
Java Properties 类读取配置文件信息第11张System.out.println(
"装载文件--->失败!");
Java Properties 类读取配置文件信息第11张ex.printStackTrace();
Java Properties 类读取配置文件信息第25张}

Java Properties 类读取配置文件信息第25张}
//endReadConfigInfo(...)
Java Properties 类读取配置文件信息第11张

Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
/***//**
Java Properties 类读取配置文件信息第11张*重载函数,得到key的值
Java Properties 类读取配置文件信息第11张*
@paramkey取得其值的键
Java Properties 类读取配置文件信息第11张*
@returnkey的值
Java Properties 类读取配置文件信息第25张
*/

Java Properties 类读取配置文件信息第11张
publicStringgetValue(Stringkey)
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
...{
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
if(propertie.containsKey(key))...{
Java Properties 类读取配置文件信息第11张Stringvalue
=propertie.getProperty(key);//得到某一属性的值
Java Properties 类读取配置文件信息第11张
returnvalue;
Java Properties 类读取配置文件信息第25张}

Java Properties 类读取配置文件信息第11张
else
Java Properties 类读取配置文件信息第11张
return"";
Java Properties 类读取配置文件信息第25张}
//endgetValue(...)
Java Properties 类读取配置文件信息第11张

Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
/***//**
Java Properties 类读取配置文件信息第11张*重载函数,得到key的值
Java Properties 类读取配置文件信息第11张*
@paramfileNameproperties文件的路径+文件名
Java Properties 类读取配置文件信息第11张*
@paramkey取得其值的键
Java Properties 类读取配置文件信息第11张*
@returnkey的值
Java Properties 类读取配置文件信息第25张
*/

Java Properties 类读取配置文件信息第11张
publicStringgetValue(StringfileName,Stringkey)
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
...{
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
try...{
Java Properties 类读取配置文件信息第11张Stringvalue
="";
Java Properties 类读取配置文件信息第11张inputFile
=newFileInputStream(fileName);
Java Properties 类读取配置文件信息第11张propertie.load(inputFile);
Java Properties 类读取配置文件信息第11张inputFile.close();
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
if(propertie.containsKey(key))...{
Java Properties 类读取配置文件信息第11张value
=propertie.getProperty(key);
Java Properties 类读取配置文件信息第11张
returnvalue;
Java Properties 类读取配置文件信息第25张}
else
Java Properties 类读取配置文件信息第11张
returnvalue;
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张}
catch(FileNotFoundExceptione)...{
Java Properties 类读取配置文件信息第11张e.printStackTrace();
Java Properties 类读取配置文件信息第11张
return"";
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张}
catch(IOExceptione)...{
Java Properties 类读取配置文件信息第11张e.printStackTrace();
Java Properties 类读取配置文件信息第11张
return"";
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张}
catch(Exceptionex)...{
Java Properties 类读取配置文件信息第11张ex.printStackTrace();
Java Properties 类读取配置文件信息第11张
return"";
Java Properties 类读取配置文件信息第25张}

Java Properties 类读取配置文件信息第25张}
//endgetValue(...)
Java Properties 类读取配置文件信息第11张

Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
/***//**
Java Properties 类读取配置文件信息第11张*清除properties文件中所有的key和其值
Java Properties 类读取配置文件信息第25张
*/

Java Properties 类读取配置文件信息第11张
publicvoidclear()
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
...{
Java Properties 类读取配置文件信息第11张propertie.clear();
Java Properties 类读取配置文件信息第25张}
//endclear();
Java Properties 类读取配置文件信息第11张

Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
/***//**
Java Properties 类读取配置文件信息第11张*改变或添加一个key的值,当key存在于properties文件中时该key的值被value所代替,
Java Properties 类读取配置文件信息第11张*当key不存在时,该key的值是value
Java Properties 类读取配置文件信息第11张*
@paramkey要存入的键
Java Properties 类读取配置文件信息第11张*
@paramvalue要存入的值
Java Properties 类读取配置文件信息第25张
*/

Java Properties 类读取配置文件信息第11张
publicvoidsetValue(Stringkey,Stringvalue)
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
...{
Java Properties 类读取配置文件信息第11张propertie.setProperty(key,value);
Java Properties 类读取配置文件信息第25张}
//endsetValue(...)
Java Properties 类读取配置文件信息第11张

Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
/***//**
Java Properties 类读取配置文件信息第11张*将更改后的文件数据存入指定的文件中,该文件可以事先不存在。
Java Properties 类读取配置文件信息第11张*
@paramfileName文件路径+文件名称
Java Properties 类读取配置文件信息第11张*
@paramdescription对该文件的描述
Java Properties 类读取配置文件信息第25张
*/

Java Properties 类读取配置文件信息第11张
publicvoidsaveFile(StringfileName,Stringdescription)
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
...{
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
try...{
Java Properties 类读取配置文件信息第11张outputFile
=newFileOutputStream(fileName);
Java Properties 类读取配置文件信息第11张propertie.store(outputFile,description);
Java Properties 类读取配置文件信息第11张outputFile.close();
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张}
catch(FileNotFoundExceptione)...{
Java Properties 类读取配置文件信息第11张e.printStackTrace();
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张}
catch(IOExceptionioe)...{
Java Properties 类读取配置文件信息第11张ioe.printStackTrace();
Java Properties 类读取配置文件信息第25张}

Java Properties 类读取配置文件信息第25张}
//endsaveFile(...)
Java Properties 类读取配置文件信息第11张

Java Properties 类读取配置文件信息第11张
publicstaticvoidmain(String[]args)
Java Properties 类读取配置文件信息第22张Java Properties 类读取配置文件信息第23张
...{
Java Properties 类读取配置文件信息第11张Configurationrc
=newConfiguration("./config/test.properties");//相对路径
Java Properties 类读取配置文件信息第11张

Java Properties 类读取配置文件信息第11张Stringip
=rc.getValue("ipp");//以下读取properties文件的值
Java Properties 类读取配置文件信息第11张
Stringhost=rc.getValue("host");
Java Properties 类读取配置文件信息第11张Stringtab
=rc.getValue("tab");
Java Properties 类读取配置文件信息第11张
Java Properties 类读取配置文件信息第11张System.out.println(
"ip="+ip+"ip-testleng="+"ip-test".length());//以下输出properties读出的值
Java Properties 类读取配置文件信息第11张
System.out.println("ip'slength="+ip.length());
Java Properties 类读取配置文件信息第11张System.out.println(
"host="+host);
Java Properties 类读取配置文件信息第11张System.out.println(
"tab="+tab);
Java Properties 类读取配置文件信息第11张
Java Properties 类读取配置文件信息第11张Configurationcf
=newConfiguration();
Java Properties 类读取配置文件信息第11张Stringipp
=cf.getValue("./config/test.properties","ip");
Java Properties 类读取配置文件信息第11张System.out.println(
"ipp="+ipp);
Java Properties 类读取配置文件信息第11张
//cf.clear();
Java Properties 类读取配置文件信息第11张
cf.setValue("min","999");
Java Properties 类读取配置文件信息第11张cf.setValue(
"max","1000");
Java Properties 类读取配置文件信息第11张cf.saveFile(
"./config/save.perperties","test");
Java Properties 类读取配置文件信息第11张
Java Properties 类读取配置文件信息第11张
//ConfigurationsaveCf=newConfiguration();
Java Properties 类读取配置文件信息第11张
//saveCf.setValue("min","10");
Java Properties 类读取配置文件信息第11张
//saveCf.setValue("max","1000");
Java Properties 类读取配置文件信息第11张
//saveCf.saveFile("./config/save.perperties");
Java Properties 类读取配置文件信息第11张

Java Properties 类读取配置文件信息第25张}
//endmain()
Java Properties 类读取配置文件信息第11张

Java Properties 类读取配置文件信息第14张}
//endclassReadConfigInfo
Java Properties 类读取配置文件信息第1张

四.小结 通过上面的例子不难看出,在Java中操作配置文件是非常简单的。在一个需要用到大量配置信息的模块或系统里,我们有必要封装一个专门的类来共使用。通过最后的main函数调用,相信大家可以看出该类的用法。不足指出希望大家多多指点。

Java properties文件的操作

java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是 "键=值"的格式,在properties文件中,可以用"#"来作注释,properties文件在Java编程中用到的地方很多,操作很方便。下面是 一个操作java properties文件的例子,给出了操作方法和properties文件。从中可以看到如何读取properties文件,并应用读取出来的值,是学 习操作properties文件的好例子。

一、properties文件

IcisReport.properties
------------------------------------------------------
###################################################
# 工商报表应用IcisReport的配置文件 #
# 作者:雷智民 #
# 日期:2006年11月21日 #
###################################################
#
# 说明:业务系统TopIcis和报表系统IcisReport是分离的
# 可分开部署到不同的服务器上,也可以部署到同一个服务
# 器上;IcisReprot作为独立的web应用程序可以使用任何
# 的Servlet容器或者J2EE服务器部署并单独运行,也可以
# 通过业务系统的接口调用作为业务系统的一个库来应用.
#
# IcisReport的ip
IcisReport.server.ip=192.168.3.143
# IcisReport的端口
IcisReport.server.port=8080
# IcisReport的上下文路径
IcisReport.contextPath=/IcisReport

------------------------------------------------------

二、操作properties文件的java方法

下面是一个操作properties文件的方法

------------------------------------------------------
/**
* @return 获取IcisReport报表应用的URL
*/
private String getIcisReportURL() {
String icisReportURL = ""; //IcisReport报表应用的URL
String icisReportServerIP = ""; //IcisReport服务器的IP
String icisReportServerPort = ""; //IcisReport服务器的服务端口
String icisReportContextPath=""; //IcisReport应用的ContextPath

Properties prop = new Properties();
InputStream in;
try {
in = getClass().getResourceAsStream("/IcisReport.properties");
prop.load(in);
Set keyValue = prop.keySet();
for (Iterator it = keyValue.iterator(); it.hasNext();) {
String key = (String) it.next();
if (key.equals("IcisReport.server.ip")) {
icisReportServerIP = (String) prop.get(key);
} else if (key.equals("IcisReport.server.port")) {
icisReportServerPort = (String) prop.get(key);
} else if (key.equals("IcisReport.contextPath")){
icisReportContextPath=(String) prop.get(key);
}
}
} catch (Exception e) {
log.error("IO读取出错,找不到IcisReport.properties!");
}

if (icisReportServerIP.trim().equals("")) {
log.error("请检查配置文件IcisReport.properties中的IcisReport.server.ip项的值是否正确!");
}
if (icisReportServerPort.trim().equals("")) {
log.error("请检查配置文件IcisReport.properties中的IcisReport.server.port项的值是否正确!");
}
if (icisReportServerPort.trim().equals("")) {
log.error("请检查配置文件IcisReport.properties中的IcisReport.server.port项的值是否正确!");
}

icisReportURL = "http://" + icisReportServerIP.trim() + ":" + icisReportServerPort.trim()+icisReportContextPath.trim();
log.info("获取的icisReportURL=" + icisReportURL);
return icisReportURL;
}

------------------------------------------------------

总 结:java的properties文件需要放到classpath下面,这样程序才能读取到,有关classpath实际上就是java类或者库的存放 路径,在java工程中,properties放到class文件一块。在web应用中,最简单的方法是放到web应用的WEB-INF/classes 目录下即可,也可以放在其他文件夹下面,这时候需要在设置classpath环境变量的时候,将这个文件夹路径加到classpath变量中,这样也也可 以读取到。在此,你需要对classpath有个深刻理解,classpath绝非系统中刻意设定的那个系统环境变量,WEB-INF/classes其 实也是,java工程的class文件目录也是。

免责声明:文章转载自《Java Properties 类读取配置文件信息》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇elk日志收集架构Android TimePickerDialog样式配置与TimePicker模式选择下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

三层架构下GridView控件实现增删改查

三层架构下GridView控件实现增删改查 转自:https://blog.csdn.net/iteye_3224/article/details/82373073 第一步:建立三层,并添加他们之间的引用关系,如下图所示: 第二步:添加GridView表格,并且套用格式样式,如下图所示: 第三步:点击表格右侧的小三角,并选中编辑列,如下图...

asp.net分割字符串的几种方法

在编写程序中,经常要用到分割的方法来处理一些字符串。这里总结了几种常用的分割方法: 1、最简单最常用的方法,以一个指定的字符进行的分割 string s="abcdeabcdeabcde";string[] sArray=s.Split('c');foreach(string i in sArray)Console.WriteLine(i.ToString...

imagepicker插件的使用方法和选择按钮汉化

1,使用cordova-plugin-image-picker插件。 1 cordova plugin add https://github.com/wymsee/cordova-imagePicker.git 2,在相应的controller里添加方法。 我这里是写在一个util中,调用即可。 1 //图片选择 2 image...

ant Form 常用 api

经过 Form.create 包装的组件将会自带 this.props.form 属性,this.props.form 提供的 API 如下: 注意:使用 getFieldsValue getFieldValue setFieldsValue 等时,应确保对应的 field 已经用 getFieldDecorator 注册过了。 方法      说明...

云计算设计模式(八)——外部配置存储模式

云计算设计模式(八)——外部配置存储模式 移动配置信息从应用部署包到一个集中位置。这个模式可以提供机会,以便管理和配置数据的控制,以及用于跨应用程序和应用程序实例共享的配置数据。  背景和问题 大多数应用程序运行时环境包括位于应用程序文件夹内的在部署应用程序文件保持配置信息。在某些情况下也能够编辑这些文件来改变该应用程序的行为,它已经被部署之后。然而,在...

Android 解析后台返回为Json数据的简单例子

大家好,今天给大家分享下Android解析Json的例子,我这里自己安装了Tomcat,让自己电脑充当下服务器,最重要的是,返回结果自己可以随便修改。 首先看下Json的定义,以及它和XML的比较: JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分...