-
แพ็คเกจ test.bwl;
นำเข้า java.io.FileNotFoundException;
นำเข้า java.io.IOException;
นำเข้า java.io.InputStream;
นำเข้า java.util.Properties;
การทดสอบชั้นเรียนสาธารณะ {
คุณสมบัติคุณสมบัติคงที่ส่วนตัว = คุณสมบัติใหม่ ();
โมฆะคงที่สาธารณะ main (String [] args) {
พยายาม {
InputStream คือ = Test.class.getClassLoader().getResourceAsStream("cache.properties");
คุณสมบัติ โหลด (เป็น);
ขนาดสตริง = properties.getProperty("cache.size");
writeLog("配置成功!" + ขนาด);
} จับ (FileNotFoundException จ) {
writeLog("配置文件不存在!" + e.getMessage());
} จับ (IOException จ) {
writeLog("读取配置文件IO错误!" + e.getMessage());
-
-
โมฆะสาธารณะคง writeLog (String strLog) {
System.out.println(strLog);
-
-
แพ็คเกจ test.bwl;
นำเข้า java.io.FileNotFoundException;
นำเข้า java.io.IOException;
นำเข้า java.io.InputStream;
นำเข้า java.util.Properties;
การทดสอบชั้นเรียนสาธารณะ {
คุณสมบัติคุณสมบัติคงที่ส่วนตัว = คุณสมบัติใหม่ ();
โมฆะคงที่สาธารณะ main (String [] args) {
พยายาม {
InputStream คือ = Test.class.getClassLoader().getResourceAsStream("cache.properties");
คุณสมบัติ โหลด (เป็น);
ขนาดสตริง = properties.getProperty("cache.size");
writeLog("配置成功!" + ขนาด);
} จับ (FileNotFoundException จ) {
writeLog("配置文件不存在!" + e.getMessage());
} จับ (IOException จ) {
writeLog("读取配置文件IO错误!" + e.getMessage());
-
-
โมฆะสาธารณะคง 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;
-
* 配置信息管理器
-
* @ผู้เขียน bwl
* @เวอร์ชั่น 1.0
-
ConfigManager คลาสสาธารณะ {
-
* 提供单例对象的静态内部类
-
SingletonHolder คลาสคงที่ส่วนตัว {
อินสแตนซ์ ConfigManager แบบคงที่สาธารณะ = ConfigManager ใหม่ ();
-
-
* 获取对象实例
* @กลับ
-
ConfigManager สาธารณะคงที่ getInstance () {
กลับ SingletonHolder.instance;
-
-
* 存储问题列表的แผนที่
-
แผนที่ส่วนตัว name2properties <String, Properties>;
-
* 构造方法,请使用getInstance()获取实例
-
ConfigManager ส่วนตัว () {
name2properties = Collections.synchronizedMap (HashMap ใหม่ <สตริง, คุณสมบัติ>());
ทำเริ่มต้น();
-
-
* 初始化方法
-
โมฆะส่วนตัว doInit() {
พยายาม {
เส้นทางไฟล์ = ไฟล์ใหม่ ("./conf/");
ถ้า (!path.exists()) {
System.out.println("ข้อผิดพลาดเริ่มต้น ConfilgManager: ไม่มีโฟลเดอร์ชื่อ 'conf' ใต้ไฟล์ src");
กลับ;
-
ไฟล์ [] confFiles = path.listFiles (DirFilter ใหม่ (".*\.properties")); //\
สำหรับ (int i = 0; i < confFiles.length; i++) {
ไฟล์ f = confFiles[i];
ถ้า (f.exists() && f.isFile()) {
คุณสมบัติ คุณสมบัติ = คุณสมบัติใหม่ ();
InputStream คือ = FileInputStream ใหม่ (f);
คุณสมบัติ โหลด (เป็น);
name2properties.put(f.getName(), คุณสมบัติ);
-
-
} จับ (FileNotFoundException จ) {
e.printStackTrace();
} จับ (IOException จ) {
e.printStackTrace();
-
-
-
* 获取配置项的值
* @param fileName 配置文件的名称
* @param key 关键码的值
* @return 配置项
-
สตริงสาธารณะ getProperty (ชื่อไฟล์สตริง, คีย์สตริง) {
ถ้า (ชื่อไฟล์ == null || fileName.length() == 0) {
กลับเป็นโมฆะ;
-
คุณสมบัติ prop = name2properties.get (ชื่อไฟล์);
ถ้า (ประคับประคอง! = โมฆะ) {
กลับ prop.getProperty (คีย์);
-
กลับเป็นโมฆะ;
-
-
* 获取整形的配置项的值
* @param fileName 配置文件的名称
* @param keyName 关键码的值
* @return 如果正确则返回数字,否则返回-1
-
สาธารณะ int getIntProperty (ชื่อไฟล์สตริง, คีย์สตริง) {
ค่าสตริง = this.getProperty (ชื่อไฟล์, คีย์);
ผลลัพธ์ int = -1;
ถ้า (ค่า == null) {
ส่งคืนผลลัพธ์;
-
พยายาม {
ผลลัพธ์ = Integer.parseInt (ค่า);
ส่งคืนผลลัพธ์;
} จับ (ข้อยกเว้นจ) {
//ไม่ทำอะไรเลย.
-
ส่งคืนผลลัพธ์;
-
-
* 过滤属性文件的内部类
-
คลาส DirFilter ใช้ FilenameFilter {
-
* 记录文件名格式的正则对象
-
รูปแบบรูปแบบส่วนตัว
DirFilter สาธารณะ (สตริง regex) {
pattern = Pattern.compile (regex);
-
ยอมรับบูลีนสาธารณะ (ไฟล์ dir ชื่อสตริง) {
return pattern.matcher(ไฟล์ใหม่(ชื่อ).getName()).matches();
-
-
โมฆะคงที่สาธารณะ 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") + "");
-