實現運用Java.util.Properties來進行對.properties配置文件操做。ide
配置文件實例:如debug.properties url
#Tue Mar 21 15:46:17 CST 2017spa
#key=valuedebug
remote.debug.prot=7451orm
第一步寫個獲取文件路徑的外部方法對象
//-in- String filePath:配置文件名如debug.properties--ci
//-return- 文件類對象--rem
public static File getFile (String filePath) throws IOException{get
try{it
ClassLoader classLoader = Thread.currentThread()
.getContextClassLoader();
URL url = classLoader.getResource(filePath);
return new File(url.toURI());
}catch(Exception e){
LOG.error("配置文件錯誤",e);
return null;
}
}
2.1根據key獲取value值方法
//-in- String filePath:配置文件名如debug.properties--
//-in- key:鍵值如remote.debug.prot--
//-return- value值--
public static String getValueByKey(String filePath, String key) throws IOException{
try {
File fileURI = PropertiesUtil.getFile(filePath);
InputStream in = new BufferedInputStream (new FileInputStream(fileURI));
Properties pps = new Properties();
pps.load(in);
String value = pps.getProperty(key);
return value;
}catch (Exception e) {
LOG.error("初始化配置文件失敗",e);
return null;
}
}
2.2獲得全部HashMap<key,value>方法
//-in- String filePath:配置文件名如debug.properties--
//-return- HashMap<String, String>: HashMap<key, value>--
public static HashMap<String, String> getAllProperties(String filePath) throws IOException {
HashMap<String, String> proper = new HashMap<String, String>();
try{
File fileURI = PropertiesUtil.getFile(filePath);
Properties pps = new Properties();
InputStream in = new BufferedInputStream(new FileInputStream(fileURI));
pps.load(in);
Enumeration<?> en = pps.propertyNames(); //獲得配置文件的名字
while(en.hasMoreElements()) {
String strKey = (String) en.nextElement();
String strValue = pps.getProperty(strKey);
proper.put(strKey, strValue);
}
}catch(Exception e)
{
LOG.error("獲取全部配置文件信息失敗",e);
return null;
}
return proper;
}
2.3根據key獲取value值方法
//-in- String filePath:配置文件名如debug.properties--
//-in- pKey: 鍵值如remote.debug.prot--
//-in- pValue: 結果值如 2000--
//-return- 狀態值--
public static String writeProperties (String filePath, String pKey, String pValue) throws IOException {
try{
File fileURI = PropertiesUtil.getFile(filePath);
Properties pps = new Properties();
InputStream in = new FileInputStream(fileURI);
pps.load(in);
OutputStream out = new FileOutputStream(fileURI);
pps.setProperty(pKey, pValue);
pps.store(out, "");
return TRUE;
}catch(Exception e)
{
LOG.error("插入配置文件失敗", e);
return null;
}
}
2.3寫入全部key,value值方法
//-in- String filePath:配置文件名如debug.properties--
//-in- HashMap<String, String>: 鍵值對HashMap<key, value>如remote.debug.prot=900--
//-return- 狀態值--
public static String setAllProperties(String filePath,HashMap<String, String> kv) throws IOException {
try{
File fileURI = PropertiesUtil.getFile(filePath);
Properties pps = new Properties();
InputStream in = new FileInputStream(fileURI);
pps.load(in);
OutputStream out = new FileOutputStream(fileURI);
Iterator<Entry<String, String>> iter = kv.entrySet().iterator();
while (iter.hasNext()) {
@SuppressWarnings("rawtypes")
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
pps.setProperty((String)key, (String)val);
pps.store(out, "");
}
}catch(Exception e)
{
return null;
}
return TRUE;
}