概述
Properties類表示一組持久的屬性。 Properties可以保存到流中或從流中加載。
Properties中的每個鍵及其對應的值都是一個字符串。
兩個特點:
1.Properties是一個Map集合,可以存儲鍵值對
2.Properties裏面的數據可以很方便的保存到流中,或從流中加載數據
Properties作集合的特有方法:
- Object setProperty(String key, String value) 添加鍵值對
- String getProperty(String key) 通過鍵獲取值
- Set stringPropertyNames() 獲取所有的鍵
public static void main(String[] args) {
Properties pp = new Properties();
// Object setProperty(String key, String value) 添加鍵值對
pp.setProperty("name", "菜虛困");
pp.setProperty("age", "18");
pp.setProperty("address", "廣州");
System.out.println("pp = " + pp); // {address=廣州, name=菜虛困, age=18}
// String getProperty(String key) 通過鍵獲取值
String name = pp.getProperty("name");
String age = pp.getProperty("age");
String address = pp.getProperty("address");
System.out.println(name + ":" + age + ":" + address);
System.out.println("---------");
// map的遍歷
// 鍵找值
// 1.獲取所有的鍵
// Set<String> stringPropertyNames() 獲取所有的鍵
Set<String> keySet = pp.stringPropertyNames();
// 2.遍歷獲取每個鍵
for (String key : keySet) {
// 3.通過一個鍵獲取一個值
String value = pp.getProperty(key);
System.out.println(key + ":::" + value);
}
}
Properties保存和加載文件數據
Properties和流操作的特有方法:
- 將Properties中的數據保存到流中
- void store(OutputStream out, String comments)
- OutputStream out: 輸出流
- String comments: 註釋
將文件中的數據加載到Properties中
- void load(InputStream inStream)
public static void main(String[] args) throws IOException {
// testStore();
testLoad();
}
public static void testLoad() throws IOException {
Properties pp = new Properties();
System.out.println(pp);
// 將文件中的數據加載到Properties中
// void load(InputStream inStream)
FileInputStream fis = new FileInputStream("day10demo\\abc\\info.properties");
pp.load(fis);
System.out.println("加載後: " + pp);
}
private static void testStore() throws IOException {
Properties pp = new Properties();
pp.setProperty("name", "鳳姐姐");
pp.setProperty("age", "18");
pp.setProperty("address", "美國");
// 將Properties中的數據保存到流中
// void store(OutputStream out, String comments)
FileOutputStream fos = new FileOutputStream("day10demo\\abc\\info.properties");
pp.store(fos, "這是一個大美女");
}