1.Properties集合
- Properties类位于java.util包下,是Map类的子类HashTable的子类,HashTable由于是单线程的,已被HashMap替代,但其子类Properties依然使用,是唯一一个和IO相结合的集合,是双列集合。
- 表示一个持久的属性集,可以保存在流中或从流中加载,属性中的每个键及其对应值都是一个字符串,不用写泛型了。
- Properties集合操作字符串的特有方法:
- Object setProperty(String key, String value),底层调用的是Map的put方法。
- String getProperty(String key),通过键key获取值value,相当于Map的get(key)方法。
- Set<String> stringPropertyNames(),返回此属性列表的键集,相当于Map的keySet方法。
2.Store方法
- Properties集合中的方法store(),把集合中的临时数据持久化,写入到硬盘中存储。
- 两种形式:comments用来解释说明保存的文件是什么,不能使用中文,会产生乱码,因为默认是Unicode编码,而系统默认编码是GDK编码,一般使用空字符串。
- void store(OutputStream out, String comments),OutputStream不能写中文
- void store(Writer writer, String comments),Writer可以写中文
- 使用步骤:
- 创建Properties对象,添加数据;
- 创建流对象,构造方法中绑定要输出的目的地;
- 调用Properties集合的store方法,把集合中的临时数据写入到硬盘中存储;
- 释放资源。
3.load方法
- Properties集合中的方法load(),把硬盘中保存的文件(键值对),读取到集合中使用。
- 两种形式:
- void load(InputStream in),InputStream不能读取含有中文的键值对;
- void load(Reader reader),Reader可以读取含有中文的键值对。
- 使用步骤:
- 创建Properties对象;
- 调用Properties集合的load方法,读取保存键值对的文件;
- 遍历Properties
- 释放资源。
- 注意:Properties文件键值对默认都是字符串,不用再加引号,荐椎对的连接方式一般是“=”或者“ ”(空格),Properties文件中可以用“#”进行注释,被注释的键值对不会再被读取。