java讀取ApplicationResources.properties資原始檔

85579711發表於2013-08-09

java讀取ApplicationResources.properties資原始檔

有時做系統時會有這樣的需要,直接讀取

ApplicationResources.properties資原始檔

//程式碼裡直接讀取資原始檔內容可以使用如下測試程式碼,修改即可用。下面第一句是找到資原始檔,這裡是直接找classes的目錄
  InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("ApplicationResources.properties");
  Properties props = new Properties();
  props.load(inputStream);
  System.out.println(props.getProperty("common.batchEdit.message")); 

//上程式碼輸出:請選擇要編輯的記錄,common.batchEdit.message 為資原始檔裡的key。資原始檔一般會放轉碼過後的編碼,例如:common.batchEdit.message=/u8bf7/u9009 /u62e9/u8981/u7f16/u8f91/u7684/u8bb0/u5f55/uff01,直接使用props.getProperty  可以直接輸出轉碼後的內容。

//如果程式碼這樣寫

 Properties props=new Properties();
 props.load(BugFactory.class.getResourceAsStream("ApplicationResources.properties"));
 String name = props.getPropery("common.batchEdit.message");
 此時 ApplicationResources.properties應該與該類放在同一個目錄.

還有一種方法:

ResourceBundle res = ResourceBundle.getBundle("yy.properties");
 String name = res.getString("yyyy");
 yy.properties應放在/WEB-INF/classes目錄

如果你這個Bean打包的話,就把這個檔案放在包內。

我一般是這樣寫的
Properties prop = new Properties();
try
{
 InputStream is = getClass().getResourceAsStream("db.properties");
 prop.load(is);
 if(is!=null)
    is.close();
}
另外一些說明:
props.load(new FileInputStream("db.properties")); 是讀取當前目錄的db.properties檔案
getClass.getResourceAsStream("db.properties"); 是讀取當前類所在位置一起的db.properties檔案
getClass.getResourceAsStream("/db.properties"); 是讀取ClassPath的根的db.properties檔案,注意ClassPath如果是多個路徑或者jar檔案的,只要在任意一個路徑目錄下或者 jar檔案裡的根下都可以,如果存在於多個路徑下的話,按照ClassPath中的先後順序,使用先找到的,其餘忽略

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29063131/viewspace-768134/,如需轉載,請註明出處,否則將追究法律責任。

相關文章