概述
Properties类表示一组持久的属性。 Properties可以保存到流中或从流中加载。 属性列表中的每个键及其对应的值都是一个字符串。改类继承了Hashtable
特有方法
PropertiesProperties集合中的方法store,把集合中的数据持久化写入到硬盘中存储
PropertiesProperties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用
void store(OutputStream out, String comments) 将此 Properties表中的此属性列表(键和元素对)以适合于使用 load(InputStream)方法加载到 Properties表格的格式写入输出流。 不能写中文
void store(Writer writer, String comments) 将此属性列表(键和元素对)写入此 Properties表中,以适合使用 load(Reader)方法的格式输出到输出字符流。 可以写中文
void load(InputStream inStream) 从输入字节流读取属性列表(键和元素对)。
void load(Reader reader) 以简单的线性格式从输入字符流读取属性列表(关键字和元素对)。
Object get(Object key) 返回指定键映射到的值,如果此映射不包含键的映射,则返回 null 。 相当于Map集合中的get(key)方法
Set<String> stringPropertyNames() 从该属性列表中返回一个不可修改的键集,其中键及其对应的值是字符串,包括默认属性列表中的不同键,如果尚未从主属性列表中找到相同名称的键。 相当于Map集合中的keySet()方法
Properties prop=new Properties();
prop.setProperty("张三","18");
prop.setProperty("李四","20");
prop.setProperty("王五","28");
Set<String> set=prop.stringPropertyNames();
for (String s : set) {
System.out.println(s); // 李四,张三,王五
System.out.println(prop.get(s)); // 20,18,28
}
/*
store方法的使用步骤:
1、创建Properties集合对象,添加数据
2、创建字节输出流或字符输出流对象,构造方法中绑定要输出的目的地
3、使用Properties集合对象中的store方法,把集合中的数据持久化写入大硬盘中存储
4、释放资源
*/
Properties prop=new Properties();
prop.setProperty("张三","18");
prop.setProperty("李四","20");
prop.setProperty("王五","28");
try(FileWriter fw = new FileWriter("day14\\src\\f.txt");) {
prop.store(fw,"");
} catch (IOException e) {
e.printStackTrace();
}
/*
load方法的使用步骤:
1、创建Properties集合对象
2、使用Properties集合对象中的load方法,读取保存简直对的文件
3、遍历Properties集合对象
注意事项:
1、存储键值对的文件中,键与值默认的连接符号可以使用=,空格(其他符号)
2、存储键值对的文件中,可以使用#号进行注释,j被注释的键值对不会在被读取
3、存储键值对的文件中,键与值默认都是字符串
*/
Properties prop = new Properties();
try {
FileReader fr = new FileReader("day14\\src\\f.txt");
prop.load(fr);
Set<String> set=prop.stringPropertyNames();
for (String s : set) {
System.out.println(s+"==="+prop.get(s));
}
} catch (Exception e) {
e.printStackTrace();
}