File類與常用IO流第七章——Properties集合
-
Properties概述
java.util.Properties extends Hashtable<k,v> implements Map<k,v>
Properties類表示了一個持久的屬性集。
Properties可以儲存在流中或從流中載入。
Properties集合是唯一一個和IO流相結合的集合:
可以使用Properties集合中的方法store,把集合中的臨時資料,持久化寫入到硬碟中儲存。
可以使用Properties集合中的方法load,把硬碟中儲存的檔案(鍵值對),讀取到集合中使用。
屬性列表中每個鍵值對及其對應值都是一個字串。
Properties集合是一個雙列集合,key和value預設都是字串。
-
使用Properties集合儲存資料,遍歷取出Properties集合中的資料
Properties集合是一個Map集合,key和value預設都是字串。
Properties集合中有一些操作字串的特有方法
-
Object setProperty(String key,String value):呼叫Hashtable的方法put。
-
String getProperty(String key):用指定的鍵(key)在此屬性列表中搜索屬性(value)。相當於Map集合中的get(key)方法。
-
Set<String> stringPropertyNames():返回此屬性列表中的鍵值,其中該鍵及其對應值是字串,如果在主屬性列表中未找到同名的鍵,則還包括預設屬性列表中不同的鍵。此方法相當於Map集合中的keySet方法。
1 Properties prop = new Properties(); 2 prop.setProperty("一班","68人"); 3 prop.setProperty("二班","78人"); 4 prop.setProperty("三班","88人"); 5 //prop.put(1,true);//並沒有被儲存進去 6 7 Set<String> stringSet = prop.stringPropertyNames(); 8 9 for (String key : stringSet) { 10 String value = prop.getProperty(key);11 System.out.println(key+"="+value); 12 }
執行結果:prop.put(1,true);//並沒有被儲存進去
-
Properties集合中的方法store
使用這個方法可以將集合中的臨時資料,持久化寫入到硬碟中儲存
-
void store(OutputStream out , String comments)
-
void store(Write write , String comments)
-
引數:
-
OutpueStream out :位元組輸出流,不能寫中文
-
Write write :字元輸出流,可以寫中文
-
String comments :註釋,用來解釋說明儲存的檔案是做什麼用的
-
comments的注意:不能使用中文,會產生亂碼,預設Unicode編碼格式。一般使用空字串 " " ;1
-
使用步驟:
-
建立Properties集合,新增資料
-
建立位元組輸出流/字元輸出流物件,構造方法中繫結要輸出的目的地
-
使用Properties集合中的方法store將集合中的臨時資料,持久化寫入到硬碟中儲存
-
釋放資源
-
匿名物件使用完畢會自動關閉其中申請的資源。
1 //1.建立Properties集合物件,新增資料 2 Properties prop = new Properties(); 3 prop.setProperty("趙麗穎","168"); 4 prop.setProperty("迪麗熱巴","165"); 5 prop.setProperty("古力娜扎","160"); 6 7 //2.建立位元組輸出流/字元輸出流物件,構造方法中繫結要輸出的目的地 8 FileWriter fw = new FileWriter("09_IOAndProperties\\prop.txt"); 9 10 //3.使用Properties集合中的方法store,把集合中的臨時資料,持久化寫入到硬碟中儲存 11 prop.store(fw,"save data"); 12 13 //4.釋放資源 14 fw.close();
1 //1.建立Properties集合物件,新增資料 2 Properties prop = new Properties(); 3 prop.setProperty("趙麗穎","168"); 4 prop.setProperty("迪麗熱巴","165"); 5 prop.setProperty("古力娜扎","160"); 6 7 //2.&3.&4.匿名物件使用完會自動關閉其中申請的資源 8 prop.store(new FileWriter("09_IOAndProperties\\prop2.txt"),"");
-
Properties集合中的方法load
使用此方法,可以將硬碟中儲存的檔案(鍵值對),讀取到集合中使用
-
void load(InputStream inStream)
-
void load(Reader reader)
-
引數:
-
InputStream inStream:位元組輸入流,不能讀取含有中文的鍵值對
-
Reader reader:字元輸入流,能讀取含有中文的鍵值對
-
使用步驟:
-
建立Properties集合物件
-
使用Properties集合物件中的方法load讀取儲存鍵值對的檔案
-
遍歷Properties集合
-
注意:
-
儲存鍵值對的檔案中,鍵與值預設的連線符號可以使用 = 或空格
-
儲存鍵值對的檔案中,可以使用 # 進行註釋,被註釋的鍵值對不會再被讀取
-
儲存薦椎對的檔案中,鍵與值的預設都是字串,不用再加引號
-
程式碼:
1 //1.建立Properties集合物件 2 Properties prop = new Properties(); 3 //2.使用Properties集合物件中的方法load讀取儲存鍵值對的檔案 4 prop.load(new FileReader("09_IOAndProperties\\prop.txt")); 5 //prop.load(new FileInputStream("09_IOAndProperties\\prop.txt")); 6 //3.遍歷Properties集合 7 Set<String> set = prop.stringPropertyNames(); 8 for (String key : set) { 9 String value = prop.getProperty(key); 10 System.out.println(key+"="+value); 11 }
本文來自部落格園,作者:水啾2,轉載請註明原文連結:https://www.cnblogs.com/shuijiu/p/15020972.html