目录
Properties 类表示了一个持久化的属性集,可保存在流中或从流中加载,属性列表中每个键及其对应的值都是一个字符串
1、Properties 集合特点
- Properties 类是 Hashtable 的子类,Map 集合中的方法都可以用
- 该集合没有泛型,键值都是字符串
- 是一个可以持久化的属性集,键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上,键值的来源也可以是持久化的设备
- 有和流技术相结合的方法
2、Properties 集合中存储键值对
集合对象 Properties 类,继承 Hsahtable ,实现 Map 接口,可以和 IO 对象结合使用,实现数据的持久存储,Properties 类有其特有的方法进行键值对的存储,如下:
- setProperty(String key, String value):setProperty等同与Map接口中的put,即往集合中存储键值对
- getProperty(String key):通过键获取值
- stringPropertyNames():将集合中的键存储到 Set 集合中,类似 Map 接口中的 keyset 方法
public static void main(String[] args)
{
Properties P = new Properties();
//setProperty(String key, String value):setProperty等同与Map接口中的put,即往集合中存储键值对
P.setProperty("1","a");
P.setProperty("2","b");
P.setProperty("3","c");
System.out.println(P);
//stringPropertyNames():将集合中的键存储到 Set 集合中,类似 Map 接口中的 keyset 方法
Set<String> S = P.stringPropertyNames();
for(String key : S)
{
//通过键获取值
System.out.println(P.getProperty(key));
}
}
3、Properties 类中常用方法
- load(InputStream inputStream) :把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中
- load(Reader reader) :按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)
- store(OutputStream outputStream,String commonts) :把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息
- stroe(Writer writer,String comments) :以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符
public static void main(String[] args) throws IOException {
/*
* Properties集合特有方法 load
* load(InputStream in)
* load(Reader r)
* 传递任意的字节或者字符输入流
* 流对象读取文件中的键值对,保存到集合
*/
Properties P1 = new Properties();
FileReader F1 = new FileReader("F:\\TestPath\\test.properties");
//调用集合的方法load,传递字符输入流
P1.load(F1);
F1.close();
System.out.println(P1);
/*
* Properties集合的特有方法store
* store(OutputStream out)
* store(Writer w)
* 接收所有的字节或者字符的输出流,将集合中的键值对,写回文件中保存
*/
Properties P2 = new Properties();
P2.setProperty("name", "zhangsan");
P2.setProperty("age", "31");
P2.setProperty("email", "123456789@163.com");
FileWriter F2 = new FileWriter("F:\\TestPath\\test2.properties");
//键值对,存回文件,使用集合的方法store传递字符输出流
P2.store(F2, "");
F2.close();
}