-
paket tes.bwl;
impor java.io.FileNotFoundException;
impor java.io.IOException;
impor java.io.InputStream;
impor java.util.Properti;
Tes kelas publik {
properti Properti statis pribadi = Properti baru();
public static void main(String[] args) {
mencoba {
InputStream adalah = Test.class.getClassLoader().getResourceAsStream("cache.properties");
properti.beban(adalah);
Ukuran string = properti.getProperty("cache.size");
writeLog("配置成功!" + ukuran);
} tangkapan (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} tangkapan (IOException e) {
writeLog("读取配置文件IO错误!" + e.getMessage());
}
}
public static void writeLog(String strLog) {
Sistem.keluar.println(strLog);
}
}
paket tes.bwl;
impor java.io.FileNotFoundException;
impor java.io.IOException;
impor java.io.InputStream;
impor java.util.Properti;
Tes kelas publik {
properti Properti statis pribadi = Properti baru();
public static void main(String[] args) {
mencoba {
InputStream adalah = Test.class.getClassLoader().getResourceAsStream("cache.properties");
properti.beban(adalah);
Ukuran string = properti.getProperty("cache.size");
writeLog("配置成功!" + ukuran);
} tangkapan (FileNotFoundException e) {
writeLog("配置文件不存在!" + e.getMessage());
} tangkapan (IOException e) {
writeLog("读取配置文件IO错误!" + e.getMessage());
}
}
public static void writeLog(String strLog) {
Sistem.keluar.println(strLog);
}
}
paket tes.bwl;
impor java.io.File;
impor java.io.FileInputStream;
impor java.io.FileNotFoundException;
impor java.io.FilenameFilter;
impor java.io.IOException;
impor java.io.InputStream;
impor java.util.Koleksi;
impor java.util.HashMap;
import java.util.Map;
impor java.util.Properti;
import java.util.regex.Pattern;
/**
* 配置信息管理器
*
* @penulis bwl
* @versi 1.0
*/
Manajer Konfigurasi kelas publik {
/**
* 提供单例对象的静态内部类
*/
kelas statis pribadi SingletonHolder {
contoh ConfigManager statis publik = ConfigManager baru();
}
/**
* 获取对象实例
* @kembali
*/
ConfigManager statis publik getInstance() {
kembalikan SingletonHolder.instance;
}
/**
* 存储问题列表的Peta
*/
Peta pribadi<String, Properti> nama2properti;
/**
* Bagaimana cara menggunakan getInstance()?
*/
ConfigManager pribadi() {
name2properties = Koleksi.synchronizedMap(HashMap baru<String, Properties>());
lakukanInit();
}
/**
* 初始化方法
*/
pribadi kekosongan doInit() {
mencoba {
Jalur file = File baru("./conf/");
if (!jalan.ada()) {
System.out.println("ConfilgManager Init Error: Tidak ada folder bernama 'conf' di bawah file src.");
kembali;
}
File[] confFiles = path.listFiles(DirFilter baru(".*\.properties"));//\
for (int i = 0; i < confFiles.length; i++) {
Berkas f = confFiles[i];
if (f.ada() && f.isFile()) {
Properti properti = Properti baru();
InputStream adalah = FileInputStream(f);
properti.beban(adalah);
name2properties.put(f.getName(), properti);
}
}
} tangkapan (FileNotFoundException e) {
e.printStackTrace();
} tangkapan (IOException e) {
e.printStackTrace();
}
}
/**
* 获取配置项的值
* @param namafile 配置文件的名称
* @param key 关键码的值
* @kembali 配置项
*/
public String getProperty(String nama file, kunci String) {
if (Namafile == null || Namafile.panjang() == 0) {
kembalikan nol;
}
Properti prop = nama2properties.get(namafile);
jika (menopang != nol) {
return prop.getProperty(kunci);
}
kembalikan nol;
}
/**
* 获取整形的配置项的值
* @param namafile 配置文件的名称
* @param keyName 关键码的值
* @return 如果正确则返回数字,否则返回-1
*/
public int getIntProperty(String nama file, kunci string) {
Nilai string = ini.getProperty(namafile, kunci);
int hasil = -1;
jika (nilai == nol) {
hasil pengembalian;
}
mencoba {
hasil = Integer.parseInt(nilai);
hasil pengembalian;
} tangkapan (Pengecualian e) {
//Jangan lakukan apa pun
}
hasil pengembalian;
}
/**
* 过滤属性文件的内部类
*/
kelas DirFilter mengimplementasikan FilenameFilter {
/**
* 记录文件名格式的正则对象
*/
pola Pola pribadi;
DirFilter publik(String regex) {
pola = Pola.kompilasi(regex);
}
boolean publik terima(Direksi file, Nama string) {
return pattern.matcher(File baru(nama).getName()).matches();
}
}
public static void main(String[] args) {
Konfigurasi ConfigManager = ConfigManager.getInstance();
System.out.println(config.getIntProperty("cache.properties", "cache.size") + "");
System.out.println(config.getProperty("javagroups.properties", "bus_name") + "");
}