33、Properties集合
1、概述
继承了Hashtable<k,v> implement Map<k,v>
Properties类表示了一个持久的属性集,Properties可保存在流中或从流中加载,属性列表中每个键及其对应的值默认都是字符串格式
是唯一和IO流相结合的的集合
可以使用store方法把集合中的数据写入硬盘
使用load方法把硬盘中的数据读取到集合中
属性列表中每个键及其对应值都是一个字符串,Properties集合是一个双列集合,key和value默认都是字符串
2、添加数据
Object setProperty(String key, String value)
//调用 Hashtable 的方法 put。存储数据到集合
String getProperty(String key)
//用指定的键在此属性列表中搜索属性(根据键值获取属性)
Set<String> stringPropertyNames()
//返回属性列表中的键集,其中该键及其对应值是字符串
3、存储相关方法
void store(OutputStream out, String comments)
//以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。
void store(Writer writer, String comments)
//以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。
参数含义:
- outputStream out:字节输出流,不能写中文
- Writer writer:字符输出流,可以写中文
- String comments:注释,解释说明保存文件中的作用,不能用中文
使用步骤:
- 创建Properties集合对象,添加数据
- 创建输出流对象,构造方法中绑定输出目的地
- 使用集合中的store方法,把数据写入文件
- 释放资源
4、读取相关方法
void load(InputStream inStream)
//从输入流中读取属性列表(键和元素对)。
void load(Reader reader)
//按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
参数解释:
- InputStream instream:字节输入流,不能读取中文
- Reader reader:字符输入流,能读取中文
使用步骤:
- 创建Properties集合对象
- 创建流对象
- 使用load方法读取保存读取键值对的文件
- 遍历集合
注意:
- 存储键值对的文件中,键与值默认的连接符号可以使用=、空格(其他符号)
- 存储键值对的文件可以使用#进行注释,注释的内容不会被读取
- 存储键值对的文件中,键与值默认都是字符串,不用加等号