1. 程式人生 > 其它 >File類與常用IO流第七章——Properties集合

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

使用這個方法可以將集合中的臨時資料,持久化寫入到硬碟中儲存

  1. void store(OutputStream out , String comments)

  2. void store(Write write , String comments)

  3. 引數:

    1. OutpueStream out :位元組輸出流,不能寫中文

    2. Write write :字元輸出流,可以寫中文

    3. String comments :註釋,用來解釋說明儲存的檔案是做什麼用的

      1. comments的注意:不能使用中文,會產生亂碼,預設Unicode編碼格式。一般使用空字串 " " ;1

  4. 使用步驟:

    1. 建立Properties集合,新增資料

    2. 建立位元組輸出流/字元輸出流物件,構造方法中繫結要輸出的目的地

    3. 使用Properties集合中的方法store將集合中的臨時資料,持久化寫入到硬碟中儲存

    4. 釋放資源

      1. 匿名物件使用完畢會自動關閉其中申請的資源。

 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

使用此方法,可以將硬碟中儲存的檔案(鍵值對),讀取到集合中使用

  1. void load(InputStream inStream)

  2. void load(Reader reader)

  3. 引數:

    1. InputStream inStream:位元組輸入流,不能讀取含有中文的鍵值對

    2. Reader reader:字元輸入流,能讀取含有中文的鍵值對

  4. 使用步驟:

    1. 建立Properties集合物件

    2. 使用Properties集合物件中的方法load讀取儲存鍵值對的檔案

    3. 遍歷Properties集合

  5. 注意:

    1. 儲存鍵值對的檔案中,鍵與值預設的連線符號可以使用 = 或空格

    2. 儲存鍵值對的檔案中,可以使用 # 進行註釋,被註釋的鍵值對不會再被讀取

    3. 儲存薦椎對的檔案中,鍵與值的預設都是字串,不用再加引號

  6. 程式碼:

 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