1.读取配置文件的方法:
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
/**
* properties解析工具
*
* @author xxxx
*
*/
public class PropertiesUtil {
private static Map<String, PropertiesUtil> propertiesUtilMap = new HashMap<String, PropertiesUtil>();
private Map<String, String> proMap = new HashMap<String, String>();
private PropertiesUtil(String propertiesFilePath) {
InputStream is = null;
try {
Properties pro = new Properties();
is = Thread.currentThread().getContextClassLoader().getResourceAsStream("/conf/" + propertiesFilePath);
pro.load(is);
Enumeration<?> e = pro.propertyNames();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
String value = (String) pro.get(key);
proMap.put(key, value);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static PropertiesUtil getInstance(String propertiesFileName) {
PropertiesUtil propertiesUtil = null;
if (propertiesUtilMap.containsKey(propertiesFileName)) {
propertiesUtil = propertiesUtilMap.get(propertiesFileName);
} else {
propertiesUtil = new PropertiesUtil(propertiesFileName);
propertiesUtilMap.put(propertiesFileName, propertiesUtil);
}
return propertiesUtil;
}
/**
* 获取所有key-value
* @return
*/
public Map<String, String> getProMap() {
return proMap;
}
/**
* 根据key获取value
* @param key
* @return
*/
public String getKey(String key) {
return proMap.get(key);
}
2.使用方式:
//如果使用频繁,声明全局静态变量
private static PropertiesUtil propertiesUtil = PropertiesUtil.getInstance("xxx.properties");
private static String name = propertiesUtil.getKey("name");
... ...
//如果使用不频繁,声明全局变量
private PropertiesUtil propertiesUtil = PropertiesUtil.getInstance("xxx.properties");
//在方法里面调用
String url = properties.getKey("name");