package com.dingjian.common.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
/**
* properties读取工具
* @author taking.wang
* 2015-3-23 上午10:19:52
*/
public class PropertyUtil {
public static PropertyUtil instance = null;
private static Map<String, String> dataMap = new HashMap<String, String>();
/**
* 单例获取实例
* @param fileName
* @return
*/
public static PropertyUtil getInstance(String fileName){
if(null == instance){
instance = new PropertyUtil(fileName);
}
return instance;
}
/**
* 得到值
* @param key
* @return
*/
public String getValue(String key){
return dataMap.get(key);
}
/**
* 加载文件
* @param fileName
*/
private PropertyUtil(String filePath){
Properties prop = new Properties();
InputStream ins = null;
try {
ins = PropertyUtil.class.getClass().getResourceAsStream(filePath);
prop.load(ins); // /加载属性列表
Iterator<String> it = prop.stringPropertyNames().iterator();
while (it.hasNext()) {
String key = it.next();
dataMap.put(key, prop.getProperty(key));
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("读取"+filePath+"文件失败,失败原因:"+e.getMessage());
} finally{
if(null != ins){
try {
ins.close();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("关闭 读取properties的文件流失败,失败原因:"+e.getMessage());
}
ins = null;
}
}
}
System.out.println(util.getValue("port"));
}
}
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
/**
* properties读取工具
* @author taking.wang
* 2015-3-23 上午10:19:52
*/
public class PropertyUtil {
public static PropertyUtil instance = null;
private static Map<String, String> dataMap = new HashMap<String, String>();
/**
* 单例获取实例
* @param fileName
* @return
*/
public static PropertyUtil getInstance(String fileName){
if(null == instance){
instance = new PropertyUtil(fileName);
}
return instance;
}
/**
* 得到值
* @param key
* @return
*/
public String getValue(String key){
return dataMap.get(key);
}
/**
* 加载文件
* @param fileName
*/
private PropertyUtil(String filePath){
Properties prop = new Properties();
InputStream ins = null;
try {
ins = PropertyUtil.class.getClass().getResourceAsStream(filePath);
prop.load(ins); // /加载属性列表
Iterator<String> it = prop.stringPropertyNames().iterator();
while (it.hasNext()) {
String key = it.next();
dataMap.put(key, prop.getProperty(key));
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("读取"+filePath+"文件失败,失败原因:"+e.getMessage());
} finally{
if(null != ins){
try {
ins.close();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("关闭 读取properties的文件流失败,失败原因:"+e.getMessage());
}
ins = null;
}
}
}
public static void main(String[] args) {
//如果是在classPath的根目录下的话则直接用/然后再加上文件的路径
PropertyUtil util = PropertyUtil.getInstance("/config/xxx.properties");System.out.println(util.getValue("port"));
}
}