Properties配置檔案載入的三種方式
阿新 • • 發佈:2022-04-14
載入配置檔案的三種方式
\\配置檔案 config.properties
className=com.it.Democlass
package com.it.demo; import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; import java.util.ResourceBundle; public class ClassLoaderWithConfig { public static void main(String[] args) throws Exception { method1(); method2(); method3(); } //方式一 private static void method1() throws IOException { //獲取屬性集物件 Properties p = new Properties(); //獲取輸入流 //FileInputStream相對路徑相對的是專案根目錄,否則報錯,找不到檔案路徑 FileInputStream fis = new FileInputStream("src\\config.properties"); //載入配置檔案 p.load(fis); //獲取對應值 String s = p.getProperty("className"); System.out.println("s = " + s); } } //方式二 private static void method2() { //使用ResourceBundle直接呼叫,不用加檔案字尾名(隱含為.properties) ResourceBundle bundle = ResourceBundle.getBundle("config"); //獲取對應值 String s = bundle.getString("className"); System.out.println("s = " + s); } //方式三 private static void method3() throws IOException { //獲取屬性集物件 Properties p = new Properties(); //使用類載入獲取配置檔案 p.load(ClassLoaderWithConfig.class.getClassLoader().getResourceAsStream("config.properties")); //獲取對應值 String s = p.getProperty("className"); System.out.println("s = " + s); }
小結
-
檔案路徑區別
- 方式一配置檔案的相對路徑為專案根目錄,如果檔案在
src
目錄下則為src\\config.properties
,如果在專案根路徑下為config.properties
- 方式二配置檔案路徑須放在
src
目錄下,否則報錯java.util.MissingResourceException: Can't find bundle for base name config, locale zh_CN
,且傳入的引數不能帶字尾名.properties
- 方式三配置檔案路徑須放在
src
目錄下,否則報錯java.lang.NullPointerException
- 方式一配置檔案的相對路徑為專案根目錄,如果檔案在
-
檔案型別區別
- 方式一和三檔案型別可以是其他型別,如
config.ini
- 方式二檔案型別必須為
.properties
- 方式一和三檔案型別可以是其他型別,如