Properties概述:
- 是一个Map体系的集合类
- Properties中有跟IO相关的方法
- 只存字符串
注:.properties文件内的键值对内容为键=值,无需添加空格与分号,会实际影响其数据
常规用法:
//常规增删改查操作
//properties没有泛型修饰
Properties p = new Properties();
//增
p.put("红色","蜘蛛侠");
p.put("黑色","蝙蝠侠");
p.put("紫色","基佬侠");
System.out.println(p);//根据值的首字母排序
//删
p.remove("黑色");
System.out.println(p);
//改:如果不存在就添加,如果存在就覆盖
p.put("黑色","黑豹");
System.out.println(p);
//查
Object z = p.get("紫色");
System.out.println("紫色是"+z);
System.out.println("----------------------------");
//遍历(两种方法:
// 1、一种获取键,根据键获取值;
// 2、获取键值对,再进行输出;)
Set<Object> objects = p.keySet();
for (Object object : objects) {
Object o = p.get(object);
System.out.println(o + "=" + object);
}
System.out.println("----------------------------");
Set<Map.Entry<Object, Object>> entries = p.entrySet();
for (Map.Entry<Object, Object> entry : entries) {
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + "--" + value);
}
运行结果
特有方法:
setProperty、getProperty、 stringPropertyNames
Properties p = new Properties();
//作用同put
p.setProperty("超人","内裤");
p.setProperty("小丑","鼻子");
p.setProperty("蝙蝠侠","眼罩");
System.out.println(p);
//getProperty
String a = p.getProperty("小丑");
System.out.println("小丑的标志:" + a);
System.out.println("---------------------");
//stringPropertyNames
Set<String> strings = p.stringPropertyNames();
for (String string : strings) {
//根据得到的键获取到值
String value = p.getProperty(string);
System.out.println(string + "--OVO--" + value);
}
最为重要的两类和IO相结合的方法
- void load(InputStream inStream):从输入字节流读取属性列表(键和元素对)
- void load(Reader reader):从输入字符流读取属性列表( 键和元素对 )
- void store(OutputStream out, Strinq comments):将此属性列表(键和元素对)写入此 Properties表中,以适合于使用load(InputStream)方法的格式写入输出字节流
- void store(Writer writer, String comments):将此属性列表(键和元素对 ) 写入此 Properties表中,以适合使用 load(Reader)方法的格式写入输出字符流
void load(Reader reader):
Properties p = new Properties();
FileReader fr = new FileReader("Bhpractice\\src\\aResumeitheima\\Day_11\\Properties\\a.properties");
p.load(fr);
fr.close();
System.out.println(p);
void store(Writer writer, String comments):
Properties p = new Properties();
p.put("dz","123");
p.put("wangwu","222");
p.put("zlsg","666");
FileWriter fw = new FileWriter("Bhpractice\\src\\aResumeitheima\\Day_11\\Properties\\a.properties");
//comment注释,并且注释会自动生成写入时间
p.store(fw,null);
fw.close();