// 根据文件名读取配置文件,文件后缀名必须为.properties
// XXXX.properties配置文件放在项目 resources 下
public synchronized static void init(String propertiesFileName) throws Exception {
Properties props = new Properties();
PropertiesConfiguration propsConfig=new PropertiesConfiguration();
//默认的编码格式是ISO-8859-1,所以才在读取文件之前先设置了编码格式
propsConfig.setEncoding("UTF-8");
propsConfig.load(propertiesFileName);
String jdbc_con=propsConfig.getString("jdbc_con");
String alipaykay=propsConfig.getString("alipaykay");
System.out.println(jdbc_con+"---------------------"+alipaykay);
//值得一提的是。propsConfig的默认分割符是',',换句话说,如果值使用','分割,使用getString去取的话是会抛出异常的,因 为这被认为是个数组,分割符可以使用setListDelimiter设置。
props.setProperty(jdbc_con,jdbc_con);
}
第二种方式
/**
* 获取指定配置文件中所以的数据
* [@param](https://my.oschina.net/u/2303379) propertyName
* 调用方式:
* 1.配置文件放在resource源包下,不用加后缀
* PropertiesUtil.getAllMessage("message");
* 2.放在包里面的
* PropertiesUtil.getAllMessage("com.test.message");
**/
public static Map<String,Object> getAllMessage(String propertyName) {
// 获得资源包
ResourceBundle rb = ResourceBundle.getBundle(propertyName.trim());
// 通过资源包拿到所有的key
Enumeration<String> allKey = rb.getKeys();
// 遍历key 得到 value
Map<String,Object> map = new HashMap<>();
while (allKey.hasMoreElements()) {
String key = allKey.nextElement();
String value = (String) rb.getString(key);
map.put(key,value);
}
return map;
}
如果使用的Spring框架,使用@Value注解方便简单