Java 對 properties 檔案操作 (ResourceBundle 類和 Properties 類)

伍个一發表於2020-12-18

1. 使用場景

properties檔案多為配置資訊,日常操作很頻繁,例如測試框架中的介面配置檔案,如下

test.url=http://localhost:8888

#登陸介面uri
#login.uri=/v1/login
login.uri=/login
#更新使用者資訊介面uri
updateUserInfo.uri=/v1/updateUserInfo

#獲取使用者列表介面uri
getUserList.uri=/v1/getUserInfo

#獲取使用者資訊介面uri
getUserInfo.uri=/v1/getUserInfo

#新增使用者介面uri
addUser.uri=/v1/addUser

那麼,在寫介面用例的時候,怎麼獲取到這些對應的測試資料呢?
示例

2. 第一種方法:ResourceBundle類

//第一種  ResourceBundle類
//1. 宣告ResourceBundle並獲取檔案
ResourceBundle bundle = ResourceBundle.getBundle("application", Locale.CHINA);
//2. 獲取值
String apiValue = bundle.getString("login.uri");

System.out.println("ResourceBundle類方式提取資料:" + apiValue);

3. 第二種方法:Properties類

//1. 檔案路徑
String dataPath = "src/main/resources/application.properties";
try {
//2.獲取輸入流
InputStream inputStream = new BufferedInputStream(new FileInputStream(new File(dataPath)));
//3. 宣告Properties類
Properties properties = new Properties();
//4. 從位元組輸入流中讀取鍵值對。
properties.load(inputStream);
//5. 獲取值
String string = properties.getProperty("login.uri");

System.out.println("Properties類提取資料:" + string);
} catch (IOException e) {
System.out.println("properties檔案路徑書寫錯誤,請檢查!");
}

控制檯

4. ResourceBundle類和Properties類的差異

ResourceBundle類通常是用於針對不同的語言來使用的屬性檔案。

而如果你的應用程式中的屬性檔案只是一些配置,並不是針對多國語言的目的。那麼使用Properties類就可以了。

通常可以把這些屬性檔案放在某個jar檔案中。然後,通過呼叫class的getResourceAsStream方法,來獲得該屬性檔案的流物件,再用Properties類的load方法來裝載。

相關文章