1、Java Properties工具類位於java.util.Properties,該工具類的使用極其簡單方便。首先該類是繼承自
Hashtable<Object,Object>
這就奠定了Properties類的本質其實是一個HashTable,那么對於各種工具類的典型特性就是在HashTable的基礎之上做各種封裝,以降低操作的難度。說白了,本質上還是key = value結構,只不過key和value都是字符串而已。可以理解成為一個簡化版的Map<String, String>。
2、Properties的用途,顯而易見,我們在開發過程中很多地方都會用到以.properties結尾的配置文件,key=valu結構的數據,他沒有XML文件那么豐富強大,但是他簡單,我們也不是任何地方都需要用XML來描述比較復雜的嵌套結構。據我所知,有不少框架在解析.properties文件的時候就采用的是Properties類或者是基於Properties來擴展,就像Properties擴展HashTable道理差不多。
3、Properties類的使用
1.創建Properties對象,源碼中提供2中構造方法。但是本質是一致的,在此介紹默認構造方法:
Properties prop = new Properties();
2.該類總共大概二三十個方法,沒有靜態方法。所有的方法都是針對該類的實例化對象的操作。按照一般的工具類的思路,內部雖然有二三十個方法,其實很多都是類似的方法,只不過是不一樣的參數進行重載而已。去掉類似的方法和重載的方法,也就剩下不到10個,而這不到10個的方法用法和特點和Map幾乎是一模一樣,本身他也是繼承自HashTable的。
3.從.properties文件中加載,我們一般都是從文件中加載屬性。而該類提供了3個從文件中加載的方法,分別是:
load(Reader reader)
load(InputStream inStream)
loadFromXML(InputStream in)
4.對屬性的操作
通過上面第3步就會使得prop對象擁有了0個或者多個key=value方式的屬性。
5.對對象的操作
1 prop.clear(); // 清空 2 prop.containsKey("key"); // 是否包含key 3 prop.containsValue("value"); // 是否包含value 4 prop.entrySet(); // prop的Map.Entry集合 5 prop.getProperty("key"); // 通過key獲取value 6 prop.put("key", "value"); // 添加屬性 7 prop.list(new PrintStream(new File(""))); // 將prop保存到文件 8 prop.store(new FileOutputStream(new File("")), "注釋"); // 和上面類似