-
пакет test.bwl;
импортировать java.io.FileNotFoundException;
импортировать java.io.IOException;
импортировать java.io.InputStream;
импортировать java.util.Properties;
тест публичного класса {
частные статические свойства свойства = новые свойства ();
public static void main(String[] args) {
пытаться {
InputStream = Test.class.getClassLoader().getResourceAsStream("cache.properties");
свойства.загрузка(есть);
Размер строки = Properties.getProperty("cache.size");
writeLog("配置成功!" + размер);
} catch (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} catch (IOException e) {
writeLog("Обращение к IO错误!" + e.getMessage());
}
}
public static void writeLog(String strLog) {
System.out.println(strLog);
}
}
пакет test.bwl;
импортировать java.io.FileNotFoundException;
импортировать java.io.IOException;
импортировать java.io.InputStream;
импортировать java.util.Properties;
тест публичного класса {
частные статические свойства свойства = новые свойства ();
public static void main(String[] args) {
пытаться {
InputStream = Test.class.getClassLoader().getResourceAsStream("cache.properties");
свойства.загрузка(есть);
Размер строки = Properties.getProperty("cache.size");
writeLog("配置成功!" + размер);
} catch (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} catch (IOException e) {
writeLog("Оборудование ввода-вывода IO!" + e.getMessage());
}
}
public static void writeLog(String strLog) {
System.out.println(strLog);
}
}
пакет test.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;
/**
* 配置信息管理器
*
* @author bwl
* @версия 1.0
*/
публичный класс ConfigManager {
/**
* 提供单例对象的静态内部类
*/
частный статический класс SingletonHolder {
экземпляр публичного статического ConfigManager = новый ConfigManager();
}
/**
* 获取对象实例
* @возвращаться
*/
общественный статический ConfigManager getInstance() {
вернуть SingletonHolder.instance;
}
/**
* 存储问题列表的Карта
*/
частная карта<String, Properties> name2properties;
/**
* Функция getInstance() позволяет использовать метод getInstance() в режиме реального времени.
*/
частный ConfigManager() {
name2properties = Collections.synchronizedMap(new HashMap<String, Properties>());
сделатьИнит();
}
/**
* 初始化方法
*/
частная пустота doInit() {
пытаться {
Путь к файлу = новый файл("./conf/");
если (!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()) {
Свойства свойства = новые свойства();
InputStream = новый FileInputStream(f);
свойства.загрузка(есть);
name2properties.put(f.getName(), свойства);
}
}
} catch (FileNotFoundException e) {
е.printStackTrace();
} catch (IOException e) {
е.printStackTrace();
}
}
/**
* 获取配置项的值
* @param fileName 配置文件的名称
* Ключ @param 关键码的值
* @return 配置项
*/
public String getProperty (String fileName, String key) {
if (fileName == null || fileName.length() == 0) {
вернуть ноль;
}
Свойства prop = name2properties.get(fileName);
если (подпорка != ноль) {
вернуть prop.getProperty(ключ);
}
вернуть ноль;
}
/**
* 获取整形的配置项的值
* @param fileName 配置文件的名称
* @param keyName 关键码的值
* @return 如果正确则返回数字,否则返回-1
*/
public int getIntProperty (String fileName, String key) {
Строковое значение = this.getProperty(имя_файла, ключ);
int результат = -1;
если (значение == ноль) {
вернуть результат;
}
пытаться {
результат = Integer.parseInt(значение);
вернуть результат;
} catch (Исключение е) {
// Ничего не делать
}
вернуть результат;
}
/**
* 过滤属性文件的内部类
*/
класс DirFilter реализует FilenameFilter {
/**
* 记录文件名格式的正则对象
*/
частный шаблон шаблона;
public DirFilter (регулярное выражение строки) {
шаблон = Pattern.compile(регулярное выражение);
}
public boolean Accept (каталог файла, имя строки) {
вернуть шаблон.matcher(новый файл(имя).getName()).matches();
}
}
public static void main(String[] args) {
Конфигурация ConfigManager = ConfigManager.getInstance();
System.out.println(config.getIntProperty("cache.properties", "cache.size") + "");
System.out.println(config.getProperty("javagroups.properties", "bus_name") + "");
}