8.6.4 使用Properties读写属性文件
Properties类是Hashtable类的子类,正如它的名字所暗示的,该对象在处理属性文件时特别方便( Windows操作平台上的.ini文件就是一种属性文件)。
Properties功能
Properties类可以把Map对象和属性文件关联起来,从而可以把Map对象中的key-value对写入属性文件中,也可以把属性文件中的”属性名=属性值“加载到Map对象中。由于属性文件里的属性名、属性值只能是字符串类型,所以Properties里的key、vaue都是字符串类型。
Properties类方法
修改key-value的方法
该类提供了如下三个方法来修改Properties里的key、 value值
| 方法 | 描述 |
|---|---|
String getProperty(String key) |
获取Properties中指定属性名对应的属性值,类似于Map的get(Object key)方法。 |
String getProperty(String key, String defaultValue) |
该方法与前一个方法基本相似。该方法多一个功能,如果Properties中不存在指定的key时,则该方法返回第二个参数作为默认值。 |
Object setProperty(String key, String value) |
设置属性值,类似于Hashtable的put()方法。 |
| ### 读写属性文件的方法 ### | |
| 除此之外,它还提供了两个读写属性文件的方法。 |
| 方法 | 描述 |
|---|---|
void load(InputStream inStream) |
从属性文件(以输入流表示)中加载key-value对,把加载到的key-value对追加到Properties里(Properties是 Hashtable的子类,它不保证key-value对之间的次序)。 |
void store(OutputStream out, String comments) |
将 Properties中的key-value对输出到指定的属性文件(以输出流表示)中。 |
实例
1 | import java.util.*; |
上面程序示范了Properties类的用法,其中①代码处将Properties对象中的key-value对写入a.ini文件中;②代码处则从a.ini文件中读取key-value对,并添加到props2对象中。编译、运行上面程序,该程序输出结果如下:
1 | {password=123456, gender=male, username=yeeku} |
上面程序还在当前路径下生成了一个a.ini文件,该文件的内容如下:
1 | #comment line |
读写XML
Properties可以把key-value对以XML文件的形式保存起来,也可以从XML文件中加载key-value对,相关方法如下。
| 方法 | 描述 | ||
|---|---|---|---|
void loadFromXML(InputStream in) |
将指定输入流上的XML文档表示的所有属性加载到此Properties表中。 |
||
void storeToXML(OutputStream os, String comment) |
把属性表中的键值对保存到到XML文件中 |
||
void storeToXML(OutputStream os, String comment, String encoding) |
把属性表中的键值对保存到XML文件中,并指定编码 |
||
| ### 实例 ### | |||
|
运行效果:
1 | {password=123456, gender=male, username=yeeku} |
生成XML文件内容如下:
1 |
|
原文链接: 8.6.4 使用Properties读写属性文件