package com.qianfeng.test;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;
/*
* Properties:這是一個類,可以理解成一個Map集合。
* 存儲的是屬性,屬性以鍵值對的形式存在。
* 鍵值對內部的鍵值必須是String,所以不需要泛型。
*
* 爲什麼要在這裏講Properties?
* 因爲他的操作與流的關係非常密切。
*
* 優點:
* 1.以鍵值對的形式存值
* 2.內部封裝了大量的方法,比如:load,stor,list等。方便操作。
*
*/
public class Demo10 {
public static void main(String[] args) throws IOException {
//1.基本的操作。
//function1();
//2.如何通過Properties獲取系統的屬性。
//function2();
//3.理解Properties的實際應用。
function3();
}
//1.基本的操作。
public static void function1(){
//創建Properties對象
Properties properties = new Properties();
//存值
properties.setProperty("01", "java");
properties.setProperty("02", "python");
properties.setProperty("01", "ok");
//取值
System.out.println(properties.getProperty("01"));
//獲取所有的Key
Set<String> set = properties.stringPropertyNames();
//遍歷
//第一種--增強for循環
for (String key : set) {
System.out.println("key:"+key+" value:"+properties.getProperty(key));
}
//第二種--迭代器
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String key = (String) iterator.next();
System.out.println("key:"+key+"= value:"+properties.getProperty(key));
}
//注意點:當key不存在的時候,返回的是默認值。
String string = properties.getProperty("03", "iOS");
System.out.println(string);
}
//2.如何通過Properties獲取系統的屬性。
public static void function2(){
Properties properties = System.getProperties();
//遍歷屬性集合
Set<String> set = properties.stringPropertyNames();
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String key = (String) iterator.next();
System.out.println("key:"+key+"= value:"+properties.getProperty(key));
}
//改變內部的值
properties.setProperty("user.language", "ch");
System.out.println(properties.getProperty("user.language"));
//重新獲取一遍
//會先到內存中找屬性集合的對象,如果有,直接使用;如果沒有,會重新初始化一個新的對象,獲取屬性集合。
Properties properties1 = System.getProperties();
System.out.println(properties1.getProperty("user.language"));
//將內容打印到控制檯--list
properties1.list(System.out);
}
//3.理解Properties的實際應用。
public static void function3() throws IOException{
//創建屬性集合對象
Properties properties = new Properties();
//創建輸入流
FileReader fileReader = new FileReader("temp2.txt");
//將temp2.txt的內容加載到屬性集合對象中
properties.load(fileReader);
//打印到控制檯
//要想打印的是正確的形式,必須保證txt文件是鍵值對的形式存在。
properties.list(System.out);
//更改內容
properties.setProperty("01", "bingbingbang");
//將內容重新寫回磁盤--藉助輸出流
FileWriter fileWriter = new FileWriter("temp2.txt");
properties.store(fileWriter, "bingbingchoule");
fileReader.close();
fileWriter.close();
}
}
java之Properties類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.