1.读取文件
Properties p = new Properties();
InputStream in = new FileInputStream("D:\\test.properties");
p.load(new InputStreamReader(in, "utf-8"));
Enumeration keys = p.propertyNames();
while (keys.hasMoreElements()) {
String key = (String) keys.nextElement();
String value = p.getProperty(key);
System.out.println(key + "=" + value);
}
或者:
Properties p = new Properties();
InputStream in = new FileInputStream("D:\\test.properties");
p.load(new InputStreamReader(in, "utf-8"));
for (String key : p.stringPropertyNames()) {
String value = p.getProperty(key);
System.out.println(key + "=" + value);
}
2.写文件
Properties p = new Properties();
InputStream in = new FileInputStream("D:\\test.properties");
p.load(new InputStreamReader(in, "utf-8"));
//如果文件中已有aa=111,会替换为aa=ssqq,没有则会追加aa=ssqq
p.setProperty("aa", "ssqq");
p.setProperty("bb", "ddd");
p.setProperty("cc", "xxx");
//文件开头的注释说明
String comment="2021.10.20 ";
//写入文件
p.store(new OutputStreamWriter(new FileOutputStream("D:\\test.properties"), "UTF-8"), comment);
3.读取文件到Map
Properties p = new Properties();
InputStream in = new FileInputStream("D:\\test.properties");
p.load(new InputStreamReader(in, "utf-8"));
Map<String, String> map = new HashMap<>();
for (Map.Entry<Object, Object> entry : p.entrySet()) {
map.put(String.valueOf(entry.getKey()), String.valueOf(entry.getValue()));
}
System.out.println(map);
4.读取文件的所有key
Properties p = new Properties();
InputStream in = new FileInputStream("D:\\test.properties");
p.load(new InputStreamReader(in, "utf-8"));
Set<Object> keys = p.keySet();//返回属性key的集合
System.out.println(keys);
5.根据某一key读取文件的对应值
Properties p = new Properties();
InputStream in = new FileInputStream("D:\\test.properties");
p.load(new InputStreamReader(in, "utf-8"));
String bb = p.getProperty("bb");//获取某一属性的值
System.out.println(bb);