实现运用Java.util.Properties来进行对.properties配置文件操作。
配置文件实例:如debug.properties
#Tue Mar 21 15:46:17 CST 2017
#key=value
remote.debug.prot=7451
第一步写个获取文件路径的外部方法
//-in- String filePath:配置文件名如debug.properties--
//-return- 文件类对象--
public static File getFile (String filePath){
try{
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){
try(InputStream in = new BufferedInputStream (
new FileInputStream(PropertiesUtil.getFile(filePath)))){
Properties pps = new Properties();
pps.load(in);
return pps.getProperty(key);
}catch (Exception e) {
// LOG.error("初始化配置文件失败",e);
return null;
}
}
2.2得到所有HashMap方法
//-in- String filePath:配置文件名如debug.properties--
//-return- HashMap: HashMap--
public static Map getAllProperties(String filePath){
Map proper = new HashMap();
try(InputStream in = new BufferedInputStream(
new FileInputStream(PropertiesUtil.getFile(filePath)))){
Properties pps = new Properties();
pps.load(in);
Enumeration> en = pps.propertyNames(); //得到配置文件的名字
while(en.hasMoreElements()) {
String strKey = (String) en.nextElement();
String strValue = pps.getProperty(strKey);
proper.put(strKey, strValue);
}
return proper;
}catch(Exception e)
{
//LOG.error("获取所有配置文件信息失败",e);
return null;
}
}
2.3根据key修改value值方法
//-in- String filePath:配置文件名如debug.properties--
//-in- pKey: 键值如remote.debug.prot--
//-in- pValue: 结果值如 2000--
//-return- 状态值--
public static String setValueByKey (String filePath, String pKey, String pValue){
Properties pps = new Properties();
try(InputStream in = new FileInputStream(PropertiesUtil.getFile(filePath))){
pps.load(in);
pps.setProperty(pKey, pValue);
}catch(Exception e)
{
//LOG.error("打开配置文件失败", e);
return null;
}
try(OutputStream out = new FileOutputStream(PropertiesUtil.getFile(filePath))){
pps.store(out, "");
return TRUE;
}catch(Exception e)
{
//LOG.error("插入配置文件失败", e);
return null;
}
}
2.3写入所有key,value值方法
//-in- String filePath:配置文件名如debug.properties--
//-in- HashMap: 键值对HashMap如remote.debug.prot=900--
//-return- 状态值--
public static String setAllProperties(String filePath,Map kv) {
Properties pps = new Properties();
try(InputStream in = new FileInputStream(PropertiesUtil.getFile(filePath))){
pps.load(in);
Iterator> 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);
}
}catch(Exception e)
{
//LOG.error("打开配置文件失败", e);
return null;
}
try(OutputStream out = new FileOutputStream(PropertiesUtil.getFile(filePath))){
pps.store(out, "");
return TRUE;
}catch(Exception e)
{
//LOG.error("写入配置文件失败", e);
return null;
}
}