-
パッケージtest.bwl;
インポートjava.io.FileNotFoundException;
インポート java.io.IOException;
java.io.InputStreamをインポートします。
java.util.Propertiesをインポートします。
パブリック クラス テスト {
private static Properties プロパティ = new Properties();
public static void main(String[] args) {
試す {
InputStream は = Test.class.getClassLoader().getResourceAsStream("cache.properties");
プロパティ.ロード(is);
文字列サイズ = property.getProperty("cache.size");
writeLog("配置成功!" + size);
} catch (FileNotFoundException e) {
writeLog("配置文件は存在しません!" + e.getMessage());
} キャッチ (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をインポートします。
パブリック クラス テスト {
private static Properties プロパティ = new Properties();
public static void main(String[] args) {
試す {
InputStream は = Test.class.getClassLoader().getResourceAsStream("cache.properties");
プロパティ.ロード(is);
文字列サイズ = property.getProperty("cache.size");
writeLog("配置成功!" + size);
} catch (FileNotFoundException e) {
writeLog("配置文件は存在しません!" + e.getMessage());
} キャッチ (IOException e) {
writeLog("读取構成文件IO错误!" + e.getMessage());
}
}
public static void writeLog(String strLog) {
System.out.println(strLog);
}
}
パッケージtest.bwl;
java.io.ファイルをインポートします。
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 {
public static ConfigManager インスタンス = new ConfigManager();
}
/**
* 取得オブジェクトの例
* @戻る
*/
パブリック静的ConfigManager getInstance() {
SingletonHolder.instance を返します。
}
/**
* 存储问列表の地図
*/
private Map<String, Properties> name2properties;
/**
* 構築方法、getInstance() の使用例
*/
プライベート ConfigManager() {
name2properties = Collections.synchronizedMap(new HashMap<String, Properties>());
doInit();
}
/**
*初期化方法
*/
private void doInit() {
試す {
ファイルパス = new File("./conf/");
if (!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()) {
プロパティ property = new Properties();
入力ストリームは = 新しい FileInputStream(f);
プロパティ.ロード(is);
name2properties.put(f.getName(), プロパティ);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} キャッチ (IOException e) {
e.printStackTrace();
}
}
/**
* 取込み構成の値
* @param fileName 構成ファイルの名前
* @param key 关键码的值
* @return 配置项
*/
public String getProperty(String fileName, String key) {
if (fileName == null || fileName.length() == 0) {
null を返します。
}
プロパティ prop = name2properties.get(fileName);
if (prop != null) {
prop.getProperty(key) を返します。
}
null を返します。
}
/**
* 取整形の配置の値
* @param fileName 構成ファイルの名前
* @param keyName 关键码的值
* @return 結果が正しければ数字を返し、そうでない場合は-1を返します
*/
public int getIntProperty(String fileName, String key) {
文字列値 = this.getProperty(ファイル名, キー);
int 結果 = -1;
if (値 == null) {
結果を返します。
}
試す {
結果 = Integer.parseInt(値);
結果を返します。
} catch (例外 e) {
//何もしない
}
結果を返します。
}
/**
* プロパティファイルの内部クラス
*/
class DirFilter は FilenameFilter を実装します {
/**
* 记录文件名格式の正对オブジェクト
*/
プライベートパターンパターン;
public DirFilter(String regex) {
パターン = Pattern.compile(正規表現);
}
public boolean accept(ファイルディレクトリ, 文字列名) {
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", "バス名") + "");
}