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读写属性文件