Properties属性文件在JAVA应用程序中是经常可以看得见的,也是特别重要的一类文件。它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数据,没有必要使用数据库文件来保存,而使用一般的文本文件来保存,如果是通过File直接保存的话,可能在存储和读取上都不是很方便,但如果保存为Properties文件就不一样了,属性文件都有键值对应的,在JAVA的包中,有提供专门的操作属性文件的类。这个类就是 java.uitl.Properties类,由于Properties类是一个集合类,所以,Properties会将属性以集合的方式读写。
Properties类继承字Hashtable类,采用键值对应的存储方式,在使用Properties类管理属性文件时有什么方便的呢?Properties类有专门的读写方法来读写Properties属性文件,不用担心读写的格式问题,只要为Properties类提供一个读写流即可。Properties用于读写属性文件的方法分别是:
Java代码
1. //读取属性文件流的方法
2. public void load(InputStream inStream) throws IOException {}
3. //写属性文件流的方法
4. public void store(OutputStream out, String comments) throws IOException {}
5.
首先,我们来看看如何从一个属性文件中读取属性。
假定我们已经新建了一个属性文件,名为config.properties,内容如下:
# the browser type
#browserName = Firefox
#browserName = IE
browserName = Chrome
# the test server url
#serverURL = https://www.baidu.com
#serverURL = https://www.tdata.cn/index.php
serverURL = http://172.22.4.147:8080/DataAssets/login
我们要做的第一步就是要将文件读取到Properties类对象中,由于load有一个参数是InputStream,所以我们可以用 InputStream的子类FileInputStream将属性文件读取到Properties对象中,知道prop.properties的路径,我们就用FileInputStream(String name)构造函数:
//创建配置文件对象
Properties p = new Properties();
//加载配置文件
InputStream ips = new FileInputStream(".\\TestConfig\\config.properties");
p.load(ips);
接下来我们将做的事情就是如果读取一个属性,因为属性文件中的每一行都是一个键值对应,所以每一行都代表了一个属性对象,每一行都将以键和值的关系存储到Properties中,Properties类提供了getProperty(String key)方法用来通过键名读取键值,当key在属性集合中找不到时又想为key在程序中赋予一个值时可以使用public String getProperty(String key, String defaultValue)方法,这个方法的意思就是用指定的键在属性列表中搜索属性。如果在属性列表中未找到该键,则接着递归检查默认属性列表及其默认值。如果未找到属性,则此方法返回默认值变量:
Java代码
1. //获取属性值,sitename已在文件中定义
2. System.out.println("获取属性值:sitename=" + prop.getProperty("sitename"));
3. //获取属性值,country未在文件中定义,将在此程序中返回一个默认值,但并不修改属性文件
4. System.out.println("获取属性值:country=" + prop.getProperty("country", "中国"));