java–基础–9.7–集合–Map–Properties
1、介绍
Hashtable implements Map
public class Properties extends Hashtable< Object,Object>
Properties 是map的子类:有map的方法
2、常用父类方法
- put(key,value)
- Set keySet()
Properties prop=new Properties();
prop.put("0001", "a");
prop.put("0002", "b");
prop.put("0003", "c");
prop.put("0004", "d");
prop.put("0005", "e");
Set<Object> set=prop.keySet();
for (Object o : set) {
Object value=prop.get(o);
System.out.println(o+"===="+value);
}
3、本身特有方法
- String getProperty(String key):用指定的键在此属性列表中搜索属性。
- void load(InputStream inStream):从输入流中读取属性列表(键和元素对)。
- void load(Reader reader):按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
- void list(PrintStream out):将属性列表输出到指定的输出流。
- void list(PrintWriter out):将属性列表输出到指定的输出流。
- Enumeration< ?> propertyNames():返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。
- Object setProperty(String key, String value):调用 Hashtable 的方法 put。
- void store(OutputStream out, String comments):以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。
- void store(Writer writer, String comments):以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。
- Set stringPropertyNames():返回此属性列表中的键集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。
4、案例
4.1、案例1
Properties prop=new Properties();
//设置key,value
prop.setProperty("0001", "a");
prop.setProperty("0002", "b");
prop.setProperty("0003", "c");
prop.setProperty("0004", "d");
prop.setProperty("0005", "e");
//获取所有的键的集合
Set<String> sets=prop.stringPropertyNames();
for (String set : sets) {
String value=prop.getProperty(set);
System.out.println(set+"===="+value);
}
//保存在一个 文件中
prop.store(new FileWriter("prop.txt"), "this is first line comment");
//清空prop
prop.clear();
//读取文件
prop.load(new FileReader("prop.txt"));
System.out.println(prop);
//获取元素
System.out.println(prop.getProperty("0005"));
输出:
0005====e
0004====d
0003====c
0002====b
0001====a
{0005=e, 0004=d, 0003=c, 0002=b, 0001=a}
e
4.2、读取配置property
// 把文件中的数据加载到集合中
Properties prop = new Properties();
Reader r = new FileReader("prop.txt");
prop.load(r);
r.close();
//读取key
Set<String> sets=prop.stringPropertyNames();
for (String set : sets) {
String value=prop.getProperty(set);
System.out.println(set+"===="+value);
}
// 把集合中的数据重新存储到文件中
Writer w = new FileWriter("prop.txt");
prop.store(w, null);
w.close();
输出:
0005====e
0004====d
0003====c
0002====b
0001====a