Properties類表示一組持久的屬性。 Properties能夠保存到流中或從流中加載。 屬性列表中的每一個鍵及其對應的值都是一個字符串。java
String getProperty(String key)
使用此屬性列表中指定的鍵搜索屬性。
String getProperty(String key, String defaultValue)
使用此屬性列表中指定的鍵搜索屬性。
void list(PrintStream out)
將此屬性列表打印到指定的輸出流。
void list(PrintWriter out)
將此屬性列表打印到指定的輸出流。
void load(InputStream inStream)
從輸入字節流讀取屬性列表(鍵和元素對)。
void load(Reader reader)
以簡單的線性格式從輸入字符流讀取屬性列表(關鍵字和元素對)。
void loadFromXML(InputStream in)
將指定輸入流中的XML文檔表示的全部屬性加載到此屬性表中。
Enumeration<?> propertyNames()
返回此屬性列表中全部鍵的枚舉,包括默認屬性列表中的不一樣鍵,若是還沒有從主屬性列表中找到相同名稱的鍵。
Object setProperty(String key, String value)
如同 Hashtable方法 put 。
void store(OutputStream out, String comments)
將此屬性列表(鍵和元素對)寫入此 Properties表中,以適合於使用 load(InputStream)方法加載到 Properties表中的格式輸出流。--comments就是文件的註釋且只能爲英文註釋由於其爲Unicode編碼
void store(Writer writer, String comments)
將此屬性列表(鍵和元素對)寫入此 Properties表中,以適合使用 load(Reader)方法的格式輸出到輸出字符流。
SetstringPropertyNames()
返回此屬性列表中的一組鍵,其中鍵及其對應的值爲字符串,包括默認屬性列表中的不一樣鍵,若是還沒有從主屬性列表中找到相同名稱的鍵。git
void store(OutputStream out, String comments)
將此屬性列表(鍵和元素對)寫入此 Properties表中,以適合於使用 load(InputStream)方法加載到 Properties表中的格式輸出流。--comments就是文件的註釋且只能爲英文註釋由於其爲Unicode編碼
void store(Writer writer, String comments)
將此屬性列表(鍵和元素對)寫入此 Properties表中,以適合使用 load(Reader)方法的格式輸出到輸出字符流。github
1.建立Properties集合對象,添加數據
2.建立字節輸出流/字符輸出對象,構造方法中綁定要輸出的目的地
3.使用Properties集合中的store()方法,把properties集合中的臨時數據,持久化到硬盤中存儲
4.釋放資源編碼
示例:code
static void properties_store() throws IOException { //建立properties對象 Properties prop = new Properties(); //存儲字符串鍵值對 prop.setProperty("swagger", "ranger"); prop.setProperty("swagger1", "ranger1"); prop.setProperty("swagger2", "ranger2"); prop.setProperty("swagger3", "ranger3"); //這裏直接在方法內new 輸出流對象,就不用關閉流,由於方法執行完後會自動釋放資源 prop.store(new FileWriter("./src/JavaCore/IO/FOSPROP.txt"), " new data"); /*try ( FileWriter fw = new FileWriter("./src/JavaCore/IO/FOSPROP.txt") ) { //在Properties中存儲鍵值對,鍵和值都是字符串 prop.setProperty("swagger", "ranger"); prop.setProperty("swagger1", "ranger1"); prop.setProperty("swagger2", "ranger2"); prop.setProperty("swagger3", "ranger3"); prop.store(fw, "sava data"); } catch (IOException e) { System.out.println(e); }*/ }
void load(InputStream inStream)
從輸入字節流讀取屬性列表(鍵和元素對)。
void load(Reader reader)
以簡單的線性格式從輸入字符流讀取屬性列表(關鍵字和元素對)。對象
1.建立 Properties 對象,
2.使用Properties對象的load()讀取文件中的鍵值對
3.遍歷集合
注意:
1.存儲鍵值對的文件,鍵值默認使用=,空格或其餘符號連接
2.文件中能夠使用#進行註釋,被註釋的鍵值對不會再被讀取
3.鍵值對中的鍵值都默認爲字符串,不用加引號
4.若是格式不對即沒有=,空格等分隔符,那麼按行來分,每一行都會被看成key
5.輸出set集合是不保證順序的資源
示例:文檔
static void properties_load() throws IOException { //新建Properties對象 Properties prop = new Properties(); //使用對象讀取文件數據 prop.load(new FileReader("./src/JavaCore/IO/FOSPROP.txt")); //使用properties的stringpropertyNames()方法獲取鍵的集合 Set<String> set = prop.stringPropertyNames(); //遍歷鍵獲取全部的鍵值對 for (String key: set) System.out.println(key + ":" + prop.getProperty(key)); }
本博客爲Swagger-Ranger的筆記分享,文章會持續更新
文中源碼地址: https://github.com/Swagger-Ranger
歡迎交流指正,若有侵權請聯繫做者確認刪除: liufei32@outlook.com字符串