package com.test.util;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
public class PropertiesUtil {
// 初始化map集合
private static Map<String, PropertiesConfiguration> configMap = new HashMap<String, PropertiesConfiguration>();
private static PropertiesConfiguration initConfigFile(String configFileName) throws ConfigurationException {
PropertiesConfiguration propConfig = new PropertiesConfiguration();
propConfig.setDelimiterParsingDisabled(true);
propConfig.setFileName(configFileName);
propConfig.load();
configMap.put(configFileName, propConfig);
return propConfig;
}
/**
* @Title: getProperty
* @Description: 根据文件路径及key值读取value
* @param configFileName
* @param key
* @return
*/
public static String getProperty(String configFileName, String key) {
PropertiesConfiguration propConfig = configMap.get(configFileName);
String value = null;
try {
if(propConfig == null) {
propConfig = initConfigFile(configFileName);
}
if(propConfig.containsKey(key)) {
Object propValue = propConfig.getProperty(key);
value = (String)propValue;
}
} catch(ConfigurationException ex) {
}
return value;
}
/**
* @Title: getProperties
* @Description: 根据文件路径读取配置文件的所有内容
* @param configFileName
* @return
*/
@SuppressWarnings("rawtypes")
public static Map<String, Object> getProperties(String configFileName) {
PropertiesConfiguration propConfig = configMap.get(configFileName);
try {
if(propConfig == null) {
propConfig = initConfigFile(configFileName);
}
} catch(ConfigurationException ex) {
return null;
}
Map<String, Object> propMap = new HashMap<String, Object>();
Iterator iter = propConfig.getKeys();
while(iter.hasNext()) {
String key = (String)iter.next();
propMap.put(key, propConfig.getProperty(key));
}
return propMap;
}
/**
* @Title: setProperty
* @Description: 保存key-value到配置文件中
* @param configFileName
* @param key
* @param value
*/
public static void setProperty(String configFileName, String key, String value) {
PropertiesConfiguration propConfig = configMap.get(configFileName);
try {
if(propConfig == null) {
propConfig = initConfigFile(configFileName);
}
propConfig.setProperty(key, value);
propConfig.save();
} catch(ConfigurationException ex) {
}
}
public static void main(String[] args) {
Map<String, Object> props = PropertiesUtil.getProperties("E:\\test\\abc\\application.properties");
System.out.println(props);
String value = PropertiesUtil.getProperty("E:\\test\\abc\\application.properties","logging.level");
PropertiesUtil.setProperty("E:\\test\\abc\\application.properties","admin.users","123");
System.out.println(value);
}
}
https://blog.csdn.net/wgq3773/article/details/80777393
he type org.apache.commons.lang.exception.NestableException cannot be resolved. It is indirectly ref
按照上述描述是因为缺少apache commons lang jar包,所以从官网引入了v3.4版本的jar包。但引入之后仍然报错。
导致原因是因为apache commons lang jar包v3.4版本,版本过高。commons-configuration-1.8.jar需要依赖apache commons lang V2.6版本
作者:coolcoffee168
来源:CSDN
原文:https://blog.csdn.net/coolcoffee168/article/details/49924345