-
Paket test.bwl;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
öffentlicher Klassentest {
private statische Eigenschaften Properties = new Properties();
public static void main(String[] args) {
versuchen {
InputStream ist = Test.class.getClassLoader().getResourceAsStream("cache.properties");
Properties.load(is);
String-Größe = Properties.getProperty("cache.size");
writeLog("Weitere Informationen" + Größe);
} Catch (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} Catch (IOException e) {
writeLog("读取配置文件IO错误!" + e.getMessage());
}
}
public static void writeLog(String strLog) {
System.out.println(strLog);
}
}
Paket test.bwl;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
öffentlicher Klassentest {
private statische Eigenschaften Properties = new Properties();
public static void main(String[] args) {
versuchen {
InputStream ist = Test.class.getClassLoader().getResourceAsStream("cache.properties");
Properties.load(is);
String-Größe = Properties.getProperty("cache.size");
writeLog("Weitere Informationen" + Größe);
} Catch (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} Catch (IOException e) {
writeLog("读取配置文件IO错误!" + e.getMessage());
}
}
public static void writeLog(String strLog) {
System.out.println(strLog);
}
}
Paket test.bwl;
java.io.File importieren;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
java.util.Collections importieren;
import java.util.HashMap;
java.util.Map importieren;
import java.util.Properties;
import java.util.regex.Pattern;
/**
* 配置信息管理器
*
* @author bwl
* @Version 1.0
*/
öffentliche Klasse ConfigManager {
/**
* 提供单例对象的静态内部类
*/
private statische Klasse SingletonHolder {
öffentliche statische ConfigManager-Instanz = new ConfigManager();
}
/**
* 获取对象实例
* @zurückkehren
*/
öffentlicher statischer ConfigManager getInstance() {
return SingletonHolder.instance;
}
/**
* 存储问题列表的Karte
*/
private Map<String, Properties> name2properties;
/**
* Hier können Sie getInstance() verwenden
*/
privater ConfigManager() {
name2properties = Collections.synchronizedMap(new HashMap<String, Properties>());
doInit();
}
/**
* 初始化方法
*/
private void doInit() {
versuchen {
Dateipfad = neue Datei("./conf/");
if (!path.exists()) {
System.out.println("ConfilgManager-Init-Fehler: Es gibt keinen Ordner mit dem Namen 'conf' unter der src-Datei.");
zurückkehren;
}
File[] confFiles = path.listFiles(new DirFilter(".*\.properties"));//\
for (int i = 0; i < confFiles.length; i++) {
Datei f = confFiles[i];
if (f.exists() && f.isFile()) {
Eigenschaften Eigenschaften = neue Eigenschaften();
InputStream ist = new FileInputStream(f);
Properties.load(is);
name2properties.put(f.getName(), Properties);
}
}
} 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) {
null zurückgeben;
}
Eigenschaften prop = name2properties.get(fileName);
if (prop != null) {
return prop.getProperty(key);
}
null zurückgeben;
}
/**
* 获取整形的配置项的值
* @param fileName 配置文件的名称
* @param keyName 关键码的值
* @return 如果正确则返回数字,否则返回-1
*/
public int getIntProperty(String fileName, String key) {
String-Wert = this.getProperty(fileName, key);
int result = -1;
if (Wert == null) {
Ergebnis zurückgeben;
}
versuchen {
result = Integer.parseInt(value);
Ergebnis zurückgeben;
} Catch (Ausnahme e) {
//Nichts tun
}
Ergebnis zurückgeben;
}
/**
* 过滤属性文件的内部类
*/
Klasse DirFilter implementiert FilenameFilter {
/**
* 记录文件名格式的正则对象
*/
privates Mustermuster;
public DirFilter(String regex) {
pattern = Pattern.compile(regex);
}
public boolean Accept(Dateiverzeichnis, Stringname) {
return pattern.matcher(new File(name).getName()).matches();
}
}
public static void main(String[] args) {
ConfigManager config = ConfigManager.getInstance();
System.out.println(config.getIntProperty("cache.properties", "cache.size") + "");
System.out.println(config.getProperty("javagroups.properties", "bus_name") + "");
}