1. 程式人生 > >java讀取properties檔案的3種方法

java讀取properties檔案的3種方法

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

介紹幾種讀取方式:

1、基於ClassLoder讀取配置檔案

注意:該方式只能讀取類路徑下的配置檔案,有侷限但是如果配置檔案在類路徑下比較方便。

複製程式碼

1     Properties properties = new Properties();
2     // 使用ClassLoader載入properties配置檔案生成對應的輸入流
3     InputStream in = PropertiesMain.class.getClassLoader().getResourceAsStream("config/config.properties");
4     // 使用properties物件載入輸入流
5     properties.load(in);
6     //獲取key對應的value值
7     properties.getProperty(String key);

複製程式碼

2、基於 InputStream 讀取配置檔案

注意:該方式的優點在於可以讀取任意路徑下的配置檔案

1     Properties properties = new Properties();
2     // 使用InPutStream流讀取properties檔案
3     BufferedReader bufferedReader = new BufferedReader(new FileReader("E:/config.properties"));
4     properties.load(bufferedReader);
5     // 獲取key對應的value值
6     properties.getProperty(String key);

3、通過 java.util.ResourceBundle 類來讀取,這種方式比使用 Properties 要方便一些

  1>通過 ResourceBundle.getBundle() 靜態方法來獲取(ResourceBundle是一個抽象類),這種方式來獲取properties屬性檔案不需要加.properties字尾名,只需要檔名即可

1    properties.getProperty(String key);
2     //config為屬性檔名,放在包com.test.config下,如果是放在src下,直接用config即可  
3     ResourceBundle resource = ResourceBundle.getBundle("com/test/config/config");
4     String key = resource.getString("keyWord"); 

  2>從 InputStream 中讀取,獲取 InputStream 的方法和上面一樣,不再贅述

1   ResourceBundle resource = new PropertyResourceBundle(inStream);

注意:在使用中遇到的最大的問題可能是配置檔案的路徑問題,如果配置檔案入在當前類所在的包下,那麼需要使用包名限定,如:config.properties入在com.test.config包下,則要使用com/test/config/config.properties(通過Properties來獲取)或com/test/config/config(通過ResourceBundle來獲取);屬性檔案在src根目錄下,則直接使用config.properties或config即可。