Properties类

本文记录Java学习过程中遇到的Properties类~

Properties类表示了一个持久的属性集。

Properties可保存在流中或从流中加载。

属性列表中每个键及其对应值都是一个字符串。

特点:

  1. Hashtable的子类,Map集合中的方法都可以用;
  2. 该集合没有泛型,键值都是字符串;
  3. 它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备;
  4. 有和流技术相结合的方法。

  • load(InputStream)  把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中
  • load(Reader)  也是把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中
  • store(OutputStream,commonts)把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息
  • stroe(Writer,comments) 也是把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息

示例代码(遍历properties):

//创建集合对象
Properties prop = new Properties();
//添加元素到集合
//prop.put(key, value);
prop.setProperty("周迅", "张学友");
prop.setProperty("李小璐", "贾乃亮");
prop.setProperty("杨幂", "刘恺威");

//System.out.println(prop);//测试的使用
//遍历集合
Set<String> keys = prop.stringPropertyNames();
for (String key : keys) {
	//通过键 找值
	//prop.get(key)
	String value = prop.getProperty(key);
	System.out.println(key+"==" +value);
}

示例代码(将集合中内容存储到文件):

//1,创建Properties集合
Properties prop = new Properties();
//2,添加元素到集合
prop.setProperty("周迅", "张学友");
prop.setProperty("李小璐", "贾乃亮");
prop.setProperty("杨幂", "刘恺威");

//3,创建流
FileWriter out = new FileWriter("prop.properties");
//4,把集合中的数据存储到流所对应的文件中
prop.store(out, "save data");
//5,关闭流
out.close();

示例代码(读取文件中的数据,并保存到集合):

//1,创建集合
Properties prop = new Properties();
//2,创建流对象
FileInputStream in = new FileInputStream("prop.properties");
//FileReader in = new FileReader("prop.properties");
//3,把流所对应文件中的数据 读取到集合中
prop.load(in);
//4,关闭流
in.close();
//5,显示集合中的数据
System.out.println(prop);

注意:使用字符流FileReader就可以完成文件中的中文读取操作了。

标签: none