1.通過IO流的方式加載
可以加載任意路徑下的文件,需要注意文件的路徑
核心方法
load(InputStream inStream) 從字節輸入流中讀取鍵值對
方法:
setProperty(String key, String value) 存儲一對數據,只是存儲到了當前properties對象中,並沒有存到文件中
getProperty(String key) 根據key獲取值
stringPropertyNames() 獲取所有的鍵,存入set集合
演示:
//獲取properties集合對象
Properties pro = new Properties();
//調用load方法結合字節流讀取配置文件並存入properties集合中
pro.load(new FileInputStream("Demo\\src\\pro.properties"));
//獲取文件中所有的鍵
Set<String> keys = pro.stringPropertyNames();
//遍歷所有的內容
for (String s : keys){
System.out.println(s + "=" + pro.getProperty(s));
}
2.通過類加載器的方式加載
GetProperties是類名
該方式只能讀取類路徑下的配置文件
演示:
//獲取properties集合對象
Properties pro = new Properties();
//通過ClassLoader中的getResourceAsStream將配置文件讀取到字節流中
InputStream is = GetProperties.class.getClassLoader().getResourceAsStream("pro.properties");
//將文件內容存入properties集合中
pro.load(is);
//獲取文件中所有的鍵
Set<String> keys = pro.stringPropertyNames();
//遍歷所有的內容
for (String s : keys){
System.out.println(s + "=" + pro.getProperty(s));
}
3.通過ResourceBundle方式加載
侷限性:只能加載src下,以properties結尾的文件
但是它的操作比較方便,不需要寫文件路徑和文件後綴名
方法:
static getBundle() 返回一個ResourceBundle對象
getString(String key) 根據key獲取值
containsKey(String key) 判斷是否包含指定的key值
getBaseBundleName() 獲取文件名
keySet() 返回所有的鍵,並存入set集合
演示:
//獲取ResourceBundle對象
ResourceBundle pro = ResourceBundle.getBundle("pro");
//獲取文件中所有的鍵
Set<String> keys = pro.keySet();
//遍歷所有的內容
for (String s : keys){
System.out.println(s + "=" + pro.getString(s));
}
文件位置:演示以上三種方式,我把配置文件都放在了 src 路徑下
三種方式,輸出結果都是一樣的,希望可以幫到你,對您有幫助的話就點個贊吧!。