Java程序讀取配置文件的幾種方法


Java 開發中,需要將一些易變的配置參數放置再 XML 配置文件或者 properties 配置文件中。然而 XML 配置文件需要通過 DOM 或 SAX 方式解析,而讀取 properties 配置文件就比較容易。

1. 讀取properties文件的方法

1. 使用類加載器ClassLoder類讀取配置文件

  • InputStream in = MainClass.class.getClassLoader().getResourceAsStream("com/demo/config.properties");

    • MainClass.class是主類的反射對象,因為getClassLoader()是class類的對象方法。
    • 在類加載器中調用getResourceAsStream()時,采用相對路徑,起始位置在src目錄,路徑開頭沒有“/”。
  • InputStream in = (new MainClass()).getClass().getClassLoader().getResourceAsStream("com/demo/config.properties");

    • 因為getClass()是object類的對象方法,所有在主類調用時要將主類實體化,即new MainClass()。
    • 同理,相對路徑起始位置同上。

2. 用class對象讀取配置文件

之所以Class對象也可以加載資源文件是因為Class類封裝的getResourceAsStream方法的源碼中調用了類加載器。

  • InputStream in = MainClass.class.getResourceAsStream(“/com/demo/config.properties”);

    • 同樣MainClass.class是主類的反射對象。
    • 在class對象中調用getResourceAsStream()時,采用絕對路徑,起始位置在類路徑(bin目錄),因此路徑要以“/”開頭。
  • InputStream in = MainClass.class.getResourceAsStream(“config.properties”);

    • 這種寫法是指文件與源碼在同一個目錄,class對象會在本目錄找文件。

3. 使用 BufferedReader輸入流讀取配置文件

  • 這種方式只能是結對路徑,可以讀取任意路徑下的配置文件:

    Properties prop = new Properties();
    FileReader reader = new FileReader("E:/config.properties");
    BufferedReader bufferedReader = new BufferedReader(reader);
    prop.load(bufferedReader);
    
  • 可以使用System.getProperty("user.dir")方法獲取當前程序運行的工作根目錄,動態調整路徑:

    String rootPath = System.getProperty("user.dir");
    FileReader reader = new FileReader(rootPath +"/com/demo/config.properties");
    

4. 使用ResourceBundle類讀取配置信息

  • java.util.ResourceBundle 類中的靜態方法getBundle("path")讀取一個配置文件,必須是 .propertise文件,所有不用寫后綴。
  • ResourceBundle對象只能每個參數讀取,需要使用集合來批處理。
  • 采用相對路徑,起始位置在src目錄,路徑開頭不需要“/”
ResourceBundle resource = ResourceBundle.getBundle("com/demo/config");
String paraValue = resource.getString("paramName");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM