更新時間:2020-05-21 14:56:49 來源:動力節點 瀏覽2700次
讀取.properties配置文件在實際的開發中使用的很多,總結了一下,有以下幾種方法:
1.通過jdk提供的java.util.Properties類。
此類繼承自java.util.HashTable,即實現了Map接口,所以,可使用相應的方法來操作屬性文件,但不建議使用像put、putAll這兩個方法,因為put方法不僅允許存入String類型的value,還可以存入Object類型的。因此java.util.Properties類提供了getProperty()和setProperty()方法來操作屬性文件,同時使用store或save(已過時)來保存屬性值(把屬性值寫入.properties配置文件)。在使用之前,還需要加載屬性文件,它提供了兩個方法:load和loadFromXML。
load有兩個方法的重載:load(InputStreaminStream)、load(Readerreader),所以,可根據不同的方式來加載屬性文件。
可根據不同的方式來獲取InputStream,如:
1)通過當前類加載器的getResourceAsStream方法獲取
InputStreaminStream=TestProperties.class.getClassLoader().getResourceAsStream("test.properties");
2)從文件獲取
InputStreaminStream=newFileInputStream(newFile("filePath"));
3)也是通過類加載器來獲取,和第一種一樣
InputStreamin=ClassLoader.getSystemResourceAsStream("filePath");
4)在servlet中,還可以通過context來獲取InputStream
InputStreamin=context.getResourceAsStream("filePath");
5)通過URL來獲取
URLurl=newURL("path");
InputStreaminStream=url.openStream();
2.通過java.util.ResourceBundle類來讀取,這種方式比使用Properties要方便一些。
1)通過ResourceBundle.getBundle()靜態方法來獲取(ResourceBundle是一個抽象類),這種方式來獲取properties屬性文件不需要加.properties后綴名,只需要文件名即可。ResourceBundleresource=ResourceBundle.getBundle("com/mmq/test");//test為屬性文件名,放在包com.mmq下,如果是放在src下,直接用test即可Stringkey=resource.getString("username");
2)從InputStream中讀取,獲取InputStream的方法和上面一樣,不再贅述。
ResourceBundleresource=newPropertyResourceBundle(inStream);
注意:在使用中遇到的最大的問題可能是配置文件的路徑問題,如果配置文件入在當前類所在的包下,那么需要使用包名限定,如:test.properties入在com.mmq包下,則要使用com/mmq/test.properties(通過Properties來獲取)或com/mmq/test(通過ResourceBundle來獲取);屬性文件在src根目錄下,則直接使用test.properties或test即可。
以上就是動力節點java培訓機構的小編針對“Java常見基礎,讀取properties文件”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習