能够读写属性文件的集合类-Properties

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对象中。

猜你喜欢

转载自cakin24.iteye.com/blog/2324257