日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Java基础】Java中的持久属性集Properties

發布時間:2023/12/9 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java基础】Java中的持久属性集Properties 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Properties?類的介紹

  Properties 類表示了一個持久的屬性集。Properties 可保存在流中或從流中加載屬性列表中每個鍵及其對應值都是一個字符串一個屬性列表可包含另一個屬性列表作為它的“默認值”;如果未能在原有的屬性列表中搜索到屬性鍵,則搜索第二個屬性列表。因為 Properties 繼承于 Hashtable,所以可對 Properties 對象應用 putputAll 方法。但不建議使用這兩個方法,因為它們允許調用者插入其鍵或值不是 String 的項。相反,應該使用 setProperty 方法。如果在“不安全”的 Properties 對象(即包含非 String 的鍵或值)上調用 storesave 方法,則該調用將失敗。類似地,如果在“不安全”的 Properties 對象(即包含非 String 的鍵)上調用 propertyNameslist 方法,則該調用將失敗。

?

Properties類的構造方法

Properties() 創建一個無默認值的空屬性列表。 Properties(Properties defaults) 創建一個帶有指定默認值的空屬性列表。

Properties的使用

  由于Properties是Hashtable<Object,Object>的子類,我們可以將其看成是一個map集合,可以存儲key-value鍵值對,只不過Properties希望你存儲的都是字符串的鍵值,而且我們定義的時候不能定義泛型,因為默認希望你存儲的都是<String,String>。但是由于其繼承了Hashtable<Object,Object>的方法,我們也可以用put方法來put非String的鍵值。例如下面這幾行代碼是不會報錯的:

public static void main(String[] args) throws IOException {Properties p = new Properties();p.put(1111, 2222);p.setProperty("aaa", "1");p.setProperty("bbb", "2");p.setProperty("ccc", "3");System.out.println(p.getProperty("aaa"));System.out.println(p.get(1111));}

  但Properties區別于Hashtable的最精彩的功能是可以對接流。看如下幾個方法:

void list(PrintStream out) 將屬性列表輸出到指定的輸出流。void list(PrintWriter out) 將屬性列表輸出到指定的輸出流。void load(InputStream inStream) 從輸入流中讀取屬性列表(鍵和元素對)。void load(Reader reader) 按簡單的面向行的格式從輸入字符流中讀取屬性列表(鍵和元素對)。void loadFromXML(InputStream in) 將指定輸入流中由 XML 文檔所表示的所有屬性加載到此屬性表中。void store(OutputStream out, String comments) 以適合使用 load(InputStream) 方法加載到 Properties 表中的格式,將此 Properties 表中的屬性列表(鍵和元素對)寫入輸出流。void store(Writer writer, String comments) 以適合使用 load(Reader) 方法的格式,將此 Properties 表中的屬性列表(鍵和元素對)寫入輸出字符。void storeToXML(OutputStream os, String comment) 發出一個表示此表中包含的所有屬性的 XML 文檔。void storeToXML(OutputStream os, String comment, String encoding) 使用指定的編碼發出一個表示此表中包含的所有屬性的 XML 文檔。

就是說Properties可以對接流直接將Properties寫出到文件或者加載到程序。例如下面的寫入代碼:

public static void main(String[] args) throws IOException {Properties p = new Properties();Writer writer = new FileWriter("t.txt");p.setProperty("aaa", "1");p.setProperty("bbb", "2");p.setProperty("ccc", "3");p.store(writer,"set properties");w.close();System.out.println(p);}

最后文件t.txt中顯示是這樣子的:

#set properties #Fri Dec 04 16:20:01 HKT 2015 bbb=2 aaa=1 ccc=3

當然,也可以通過load方法將屬性load進來:

public static void main(String[] args) throws IOException {Properties p = new Properties();Reader reader = new FileReader("t.txt");p.load(reader);
     r.close();System.out.println(p.getProperty(
"aaa"));System.out.println(p);}

?

轉載于:https://www.cnblogs.com/gslyyq/p/5019665.html

總結

以上是生活随笔為你收集整理的【Java基础】Java中的持久属性集Properties的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。