java properties配置文件操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java properties配置文件操作相关的知识,希望对你有一定的参考价值。
实现运用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){
InputStream in = null;
try {
File fileURI = PropertiesUtil.getFile(filePath);
in = new BufferedInputStream (new FileInputStream(fileURI));
Properties pps = new Properties();
pps.load(in);
return pps.getProperty(key);
}catch (Exception e) {
LOG.error("初始化配置文件失败",e);
return null;
}finally{
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.2得到所有HashMap<key,value>方法
//-in- String filePath:配置文件名如debug.properties--
//-return- HashMap<String, String>: HashMap<key, value>--
public static Map<String, String> getAllProperties(String filePath){
Map<String, String> proper = new HashMap<String, String>();
InputStream in = null;
try{
File fileURI = PropertiesUtil.getFile(filePath);
Properties pps = new Properties();
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;
}finally{
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return proper;
}
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){
InputStream in = null;
OutputStream out = null;
try{
File fileURI = PropertiesUtil.getFile(filePath);
Properties pps = new Properties();
in = new FileInputStream(fileURI);
pps.load(in);
out = new FileOutputStream(fileURI);
pps.setProperty(pKey, pValue);
pps.store(out, "");
return TRUE;
}catch(Exception e)
{
LOG.error("插入配置文件失败", e);
return null;
}
finally{
try {
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
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,Map<String, String> kv) {
InputStream in = null;
OutputStream out = null;
try{
File fileURI = PropertiesUtil.getFile(filePath);
Properties pps = new Properties();
in = new FileInputStream(fileURI);
pps.load(in);
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)
{
LOG.error("插入配置文件失败", e);
return null;
}
finally{
try {
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return TRUE;
}
本文出自 “诗意生活” 博客,请务必保留此出处http://whish.blog.51cto.com/10679902/1911710
以上是关于java properties配置文件操作的主要内容,如果未能解决你的问题,请参考以下文章