Properties(集合)
Properties extends Hashtable(k,v) implements Map<k,v>
- Properties:类表示了一个持久的属性集,Properties可保存在流中或从流中取出。
是一个唯一和io流相含的集合。 - 可以使用Properties中的方法store,把集合中的临时数据,持久化写入到硬盘中存储。
- 可以使用Properties中的方法load,把硬盘中保存的文件(键值对),读取到集合中。
- 属性列表中每个键值对与其对应的值都是一个字符串。
- Propertise是一个双例集合,key和value都是字符串。
构造方法
- public Properties()创建一个无默认值的空属性列表。
常用方法:
public Object setProperty(String key,String value)
- 调用 Hashtable 的方法 put。
参数:
- key - 要置于属性列表中的键。
- value - 对应于 key 的值。
返回:
- 属性列表中指定键的旧值,如果没有值,则为 null。
public String getProperty(String key)
- 用指定的键在此属性列表中搜索属性
参数:
- key - 属性键。
返回:
-
属性列表中具有指定键值的值
-
public Set stringPropertyNames()
返回此属性列表中的键集
public void store(OutputStream out,String comments)
public void store(Writer writer,String comments)
参数:
- OutputStream:字节输出流,不能写中文
- Writer:字符输出流,可以写中文。
- comments:注释,用来解释说明保存的文件用来干嘛的
package zlb.day08.demo06;
import java.io.*;
import java.util.Properties;
import java.util.Set;
public class DemoProperties {
public static void main(String[] args) throws IOException {
demo01();
}
private static void demo01() throws IOException {
//创建Properties集合对象
Properties pro = new Properties();
//通过setProperty往集合中添加数据
pro.setProperty("胡歌", "20");
pro.setProperty("江疏影", "18");
pro.setProperty("王凯", "60");
//把集合中属性列表的键值,取出来,并存储到String 类型数组
Set<String> strings = pro.stringPropertyNames();
//遍历取出键值,然后使用getProperty方法根据键值获取对应的的值
for (String string : strings) {
System.out.println(string + "=" + pro.getProperty(string));
}
}
//用store方法把Properties中的数据写到文件中
FileWriter fw = new FileWriter("Z:\\zlb\\b\\E.txt");
pro.store(fw, "save data");
fw.close();
//根据load方法吧硬盘中的文件读取到集合中
FileReader fr = new FileReader("Z:\\zlb\\b\\E.txt");
pro.load(fr);
Set<String> strings1 = pro.stringPropertyNames();
for (String string : strings1) {
System.out.println(string + pro.getProperty(string));
}
fr.close;