能够读写属性文件的集合类-Properties
程序员文章站
2022-04-25 14:29:43
...
1 Properties类的介绍
Properties类是Hashtable类的子类,正如它的名字暗示的,该对象在处理属性文件时特别方便(Windows操作平台上的ini文件就是一种属性文件)。Properties类可以把Map对象和属性文件关联起来,从而可以把Map对象中的key-value对写入属性文件,也可以把属性文件中的属性名=属性值加载到Map对象中。由于属性文件里的属性名、属性值只能是字符串类型,所以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方法。
2 代码示例
import java.util.*; import java.io.*; public class PropertiesTest { public static void main(String[] args) throws Exception { Properties props = new Properties(); // 向Properties中增加属性 props.setProperty("username" , "cakin24"); props.setProperty("password" , "123456"); // 将Properties中的key-value对保存到a.ini文件中 props.store(new FileOutputStream("a.ini") , "comment line"); //① // 新建一个Properties对象 Properties props2 = new Properties(); // 向Properties中增加属性 props2.setProperty("gender" , "male"); // 将a.ini文件中的key-value对追加到props2中 props2.load(new FileInputStream("a.ini") ); //② System.out.println(props2); } }
3 运行结果
{password=123456, gender=male, username=cakin24}
上面程序还在当前路径下生成了一个a.ini文件,文件内容如下:
#comment line
#Tue Sep 13 20:33:03 CST 2016
password=123456
username=cakin24
4 代码分析
上面的程序演示了Properties类的用法,其中①代码处理将Properties对象中的key-value对写入a.ini文件中;②代码处则从a.ini文件中读取key-value对,并添加到props2对象中。