-
paquet test.bwl ;
importer java.io.FileNotFoundException ;
importer java.io.IOException ;
importer java.io.InputStream ;
importer java.util.Properties ;
Test de classe publique {
Propriétés statiques privées propriétés = new Properties();
public static void main (String[] arguments) {
essayer {
InputStream est = Test.class.getClassLoader().getResourceAsStream("cache.properties");
propriétés.load(est);
Taille de la chaîne = propriétés.getProperty("cache.size");
writeLog("配置成功!" + size);
} catch (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} catch (IOException e) {
writeLog("读取配置文件IO错误!" + e.getMessage());
}
}
public static void writeLog (String strLog) {
System.out.println(strLog);
}
}
paquet test.bwl ;
importer java.io.FileNotFoundException ;
importer java.io.IOException ;
importer java.io.InputStream ;
importer java.util.Properties ;
Test de classe publique {
Propriétés statiques privées propriétés = new Properties();
public static void main (String[] arguments) {
essayer {
InputStream est = Test.class.getClassLoader().getResourceAsStream("cache.properties");
propriétés.load(est);
Taille de la chaîne = propriétés.getProperty("cache.size");
writeLog("配置成功!" + size);
} catch (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} catch (IOException e) {
writeLog("读取配置文件IO错误!" + e.getMessage());
}
}
public static void writeLog (String strLog) {
System.out.println(strLog);
}
}
paquet test.bwl ;
importer java.io.File ;
importer java.io.FileInputStream ;
importer java.io.FileNotFoundException ;
importer java.io.FilenameFilter ;
importer java.io.IOException ;
importer java.io.InputStream ;
importer java.util.Collections ;
importer java.util.HashMap ;
importer java.util.Map ;
importer java.util.Properties ;
importer java.util.regex.Pattern ;
/**
* 配置信息管理器
*
* @auteur bwl
* @version 1.0
*/
classe publique ConfigManager {
/**
* 提供单例对象的静态内部类
*/
classe statique privée SingletonHolder {
instance publique statique de ConfigManager = new ConfigManager();
}
/**
* 获取对象实例
* @retour
*/
public statique ConfigManager getInstance() {
retourner SingletonHolder.instance ;
}
/**
* 存储问题列表的Carte
*/
Private Map<String, Properties> name2properties ;
/**
* Il s'agit d'un exemple de getInstance().
*/
ConfigManager privé() {
name2properties = Collections.synchronizedMap(new HashMap<String, Properties>());
doInit();
}
/**
* 初始化方法
*/
privé vide doInit() {
essayer {
Chemin du fichier = nouveau fichier("./conf/");
si (!path.exists()) {
System.out.println("Erreur d'initialisation de ConfilgManager : il n'y a aucun dossier nommé 'conf' sous le fichier src.");
retour;
}
File[] confFiles = path.listFiles(new DirFilter(".*\.properties"));//\
pour (int i = 0; i < confFiles.length; i++) {
Fichier f = confFiles[i];
if (f.exists() && f.isFile()) {
Propriétés propriétés = new Propriétés ();
InputStream est = new FileInputStream(f);
propriétés.load(est);
name2properties.put(f.getName(), propriétés);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获取配置项的值
* @param fileName 配置文件的名称
* @param key 关键码的值
* @return 配置项
*/
public String getProperty (String fileName, String key) {
if (fileName == null || fileName.length() == 0) {
renvoie null ;
}
Propriétés prop = name2properties.get(fileName);
si (prop != nul) {
return prop.getProperty(clé);
}
renvoie null ;
}
/**
* 获取整形的配置项的值
* @param fileName 配置文件的名称
* @param keyName 关键码的值
* @return 如果正确则返回数字,否则返回-1
*/
public int getIntProperty (String fileName, String key) {
Valeur de chaîne = this.getProperty(fileName, key);
résultat int = -1 ;
si (valeur == null) {
renvoyer le résultat ;
}
essayer {
résultat = Integer.parseInt(valeur);
renvoyer le résultat ;
} attraper (Exception e) {
//Ne rien faire
}
renvoyer le résultat ;
}
/**
* 过滤属性文件的内部类
*/
la classe DirFilter implémente FilenameFilter {
/**
* 记录文件名格式的正则对象
*/
modèle de modèle privé ;
public DirFilter (expression régulière de chaîne) {
motif = Pattern.compile (regex);
}
public boolean accept (répertoire du fichier, nom de la chaîne) {
return pattern.matcher(new File(name).getName()).matches();
}
}
public static void main (String[] arguments) {
ConfigManager config = ConfigManager.getInstance();
System.out.println(config.getIntProperty("cache.properties", "cache.size") + "");
System.out.println(config.getProperty("javagroups.properties", "bus_name") + "");
}