前幾天開發時遇到一個問題,在後台讀取設定檔的時候無法讀取屬性值,於是上網查了查,現在在這裡分享給大家,
先附上代碼吧:
包com.shafei.util;
進口java.io.BufferedInputStream中;
進口java.io.FileInputStream中;
進口java.io.FileOutputStream中;
進口的java.io.InputStream;中;
進口的java.util.Enumeration;
進口java.util.Properties;
進口org.apache.log4j.Logger;
公共類別PropertieUtil {
私有靜態記錄器記錄= Logger
公共類別PropertieUtil {
私有記錄器記錄= Logger.getLoggerclass);
私人PropertieUtil(){
}
/ **
*讀取設定檔某屬性
* /
公共靜態字串readValue(字串檔案路徑,字串鍵){
屬性道具=新特性(公共靜態字串readValue(字串檔案路徑,字串鍵){
屬性道具=新特性(嘗試{
//注意路徑以/開始,沒有則處理
如果(filePath.startsWith(“/”)!)
檔案路徑=“/”+檔案路徑;
InputStream的時間= PropertieUtil.class.getResourceAsStreamStream(檔案路徑);
props.load(在);
字串值= props.getProperty(鍵);
回傳值;
}趕上(例外五){
logger.error(E)
返回null;
}
/ **
*列印設定檔全部內容(檔案路徑,檔案名稱,若有路徑,道具/ test.properties)
* /
公用靜態檔案無效readProperties(字串路徑){
屬性道具=新功能();
嘗試{
//注意路徑以/開始,沒有則處理
如果(filePath.startsWith(“/”)!)
檔案路徑=“/”+檔案路徑;
InputStream的時間= PropertieUtil .class.getResourceAsStream(檔案路徑);
props.load(在);
枚舉EN = props.propertyNames();
//遍歷列印
的同時(en.hasMoreElements()){
字串鍵=(字串)en.nextElement();
String屬性= props.getProperty(鍵);
的System.out. println(物業);
logger.info(鍵+「:」+物業);
}
}趕上(例外五){
logger.error(E);
}
}寫入設定檔
* /
公用靜態無效writeProperties(字串檔名,字串參數名稱,字串的parameterValue)拋出例外狀況{
//本機測試特別注意,如果是Maven的項目,請到目標目錄下方檢視文件,而不是原始碼下
//注意路徑不能加/了,加了則移除掉
,如果(fileName.startsWith(「/」))
fileName.substring(1);
字串檔案路徑= PropertieUtil.class.getResource(“/”)的getPath()+檔案名稱。
//取得設定檔
屬性PPS =新功能();
在的InputStream =新的BufferedInputStream(新的FileInputStream(檔案路徑));
pps.load(在);
附寄();
pps.load(在);
附寄(); 出的OutputStream =新的FileOutputStream(檔案路徑);
//設定設定名稱與值
pps.setProperty(參數名稱,的parameterValue);
//註解設定等於檔案的註解
pps.store(滿分,「更新」+參數名稱+“名”);
了out.flush();
out.close();
}
公共靜態無效的主要(字符串[] args)拋出異常{
readProperties(“jdbc.properties” );
logger.info(readValue(“jdbc.properties”,“JAVABLOG_WRITE_URL”));
// writeProperties(“CONF / test.properties”,“dataSource.driver”,“測試”); / test.properties」);
}
}
上面的程式碼我也是學習大牛們的,也不是很難,很實用,希望對大家有幫助!