1.Properties的基本操作:
/*
Properties:
概述:
Hashtable<Object, Object> 的子类
Properties 类表示了一个可持久的属性集。
Properties 可保存在流中或从流中加载。
Properties 中每个键及其对应值都是一个字符串。
注意事项:不要使用Hashtable里面定义的方法添加键值对!
因为它们可以插入不是String 类型的数据。
如果一个Properties中含有非String的键值对,
那么这样的Properties是”不安全”的。调用 store 或者 save 方法将失败。
构造方法:
Properties()
Properties(Properties defaults)
API:
String getProperty(String key)
String getProperty(String key, String defaultValue)
Object setProperty(String key, String value)
// 获取属性名的集合
Set<String> stringPropertyNames()
*/
public class PropertiesDemo1 {
public static void main(String[] args) {
Properties info = new Properties();
info.setProperty("刘强东", "章泽天");
info.setProperty("文章", "马伊利");
info.setProperty("贾乃亮", "李小璐");
info.setProperty("罗志祥", "周扬青");
// System.out.println(info);
/*Properties properties = new Properties(info);
System.out.println(properties);
System.out.println(properties.size());*/
/*System.out.println(properties.containsKey("刘强东"));
System.out.println(properties.getProperty("刘强东"));
System.out.println(properties.getProperty("文章"));
System.out.println(properties.getProperty("谢霆锋"));*/
/*properties.setProperty("文章", "");
System.out.println(properties.getProperty("文章"));*/
// String getProperty(String key)
/*System.out.println(info.getProperty("刘强东"));
System.out.println(info.getProperty("谢霆锋"));
// String getProperty(String key, String defaultValue)
System.out.println(info.getProperty("刘强东", "default"));
System.out.println(info.getProperty("谢霆锋", "default"));*/
Set<String> names = info.stringPropertyNames();
for(String key : names) {
String value = info.getProperty(key);
System.out.println(key + "=" + value);
}
}
}
2.和流相关的API
/*
和流相关的API
// void store(OutputStream out, String comments)
void store(Writer out, String comments)
// void load(InputStream inStream)
void load(Reader read)
注意事项:字节流默认使用 ISO 8859-1 字符编码。
void storeToXML(OutputStream os, String comment)
void loadFromXML(InputStream in)
注意事项:默认采用UTF-8编码。
*/
public class PropertiesDemo2 {
public static void main(String[] args) {
/*Properties info = new Properties();
info.setProperty("刘强东", "章泽天");
info.setProperty("文章", "马伊利");
info.setProperty("贾乃亮", "李小璐");
info.setProperty("罗志祥", "周扬青");
// void store(Writer out, String comments)
try(Writer writer = new FileWriter("a.txt")) {
info.store(writer, "...");
} catch (IOException e) {
e.printStackTrace();
}*/
// void load(Reader read)
/*Properties info = new Properties();
try (Reader reader = new FileReader("a.txt")) {
info.load(reader);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(info);*/
// void storeToXML(OutputStream os, String comment)
/*Properties info = new Properties();
info.setProperty("刘强东", "章泽天");
info.setProperty("文章", "马伊利");
info.setProperty("贾乃亮", "李小璐");
info.setProperty("罗志祥", "周扬青");
try(OutputStream out = new FileOutputStream("b.xml")) {
info.storeToXML(out, "...");
} catch (IOException e) {
e.printStackTrace();
}*/
// void loadFromXML(InputStream in)
Properties info = new Properties();
try(InputStream in = new FileInputStream("b.xml")) {
info.loadFromXML(in);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(info);
}
}