-
包测试.bwl;
导入 java.io.FileNotFoundException;
导入java.io.IOException;
导入 java.io.InputStream;
导入java.util.Properties;
公开课测试{
私有静态属性属性 = new Properties();
公共静态无效主(字符串[] args){
尝试 {
InputStream is = Test.class.getClassLoader().getResourceAsStream("cache.properties");
属性.load(is);
字符串大小=properties.getProperty(“cache.size”);
writeLog("配置成功!" + size);
} catch (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} catch (IOException e) {
writeLog("读取配置文件IO错误!" + e.getMessage());
}
}
公共静态无效writeLog(字符串strLog){
System.out.println(strLog);
}
}
包测试.bwl;
导入 java.io.FileNotFoundException;
导入java.io.IOException;
导入 java.io.InputStream;
导入java.util.Properties;
公开课测试{
私有静态属性属性 = new Properties();
公共静态无效主(字符串[] args){
尝试 {
InputStream is = Test.class.getClassLoader().getResourceAsStream("cache.properties");
属性.load(is);
字符串大小=properties.getProperty(“cache.size”);
writeLog("配置成功!" + size);
} catch (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} catch (IOException e) {
writeLog("读取配置文件IO错误!" + e.getMessage());
}
}
公共静态无效writeLog(字符串strLog){
System.out.println(strLog);
}
}
包测试.bwl;
导入java.io.File;
导入 java.io.FileInputStream;
导入 java.io.FileNotFoundException;
导入 java.io.FilenameFilter;
导入java.io.IOException;
导入 java.io.InputStream;
导入java.util.Collections;
导入java.util.HashMap;
导入java.util.Map;
导入java.util.Properties;
导入java.util.regex.Pattern;
/**
* 配置信息管理器
*
* @作者bwl
* @版本1.0
*/
公共类配置管理器{
/**
* 提供单实例对象的静态内部类
*/
私有静态类 SingletonHolder {
公共静态 ConfigManager 实例 = new ConfigManager();
}
/**
* 获取对象实例
* @返回
*/
公共静态 ConfigManager getInstance() {
返回 SingletonHolder.instance;
}
/**
* 存储问题列表的Map
*/
私人地图<字符串,属性> name2properties;
/**
* 构造方法,请使用getInstance()获取实例
*/
私有配置管理器(){
name2properties = Collections.synchronizedMap(new HashMap<String, Properties>());
doInit();
}
/**
* 初始化方法
*/
私有无效 doInit() {
尝试 {
文件路径 = new File("./conf/");
if (!path.exists()) {
System.out.println("ConfilgManager初始化错误:src文件下没有名为'conf'的文件夹。");
返回;
}
File[] confFiles = path.listFiles(new DirFilter(".*\.properties"));//\
for (int i = 0; i < confFiles.length; i++) {
文件 f = confFiles[i];
if (f.exists() && f.isFile()) {
属性属性 = new Properties();
输入流 = new FileInputStream(f);
属性.load(is);
name2properties.put(f.getName(), 属性);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获取配置项的值
* @param fileName 配置文件的名称
* @param key 关键字的值
* @return 配置项
*/
公共字符串 getProperty(字符串文件名,字符串键){
if (fileName == null || fileName.length() == 0) {
返回空值;
}
属性 prop = name2properties.get(fileName);
if (prop != null) {
返回 prop.getProperty(key);
}
返回空值;
}
/**
* 获取整形的配置项的值
* @param fileName 配置文件的名称
* @param keyName 密钥码的值
* @return 如果正确则返回数字,否则返回-1
*/
公共 int getIntProperty(字符串文件名, 字符串键) {
字符串值 = this.getProperty(文件名, 键);
整数结果=-1;
如果(值==空){
返回结果;
}
尝试 {
结果 = Integer.parseInt(值);
返回结果;
} catch (异常 e) {
//什么也不做
}
返回结果;
}
/**
* 属性过滤文件的内部类
*/
类 DirFilter 实现 FilenameFilter {
/**
* 记录文件名格式的则对象
*/
私有模式模式;
公共 DirFilter(字符串正则表达式) {
模式 = Pattern.compile(regex);
}
公共布尔接受(文件目录,字符串名称){
returnpattern.matcher(new File(name).getName()).matches();
}
}
公共静态无效主(字符串[] args){
ConfigManager 配置 = ConfigManager.getInstance();
System.out.println(config.getIntProperty("cache.properties", "cache.size") + "");
System.out.println(config.getProperty("javagroups.properties", "bus_name") + "");
}