Propertyの取得方法

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Properties;

public class PropertyUtil {

    private static final String INIT_FILE_PATH = "resourse/common.properties";
    private static final Properties properties;

    private PropertyUtil() throws Exception {
    }

    static {
        properties = new Properties();
        try {
            properties.load(Files.newBufferedReader(Paths.get(INIT_FILE_PATH), StandardCharsets.UTF_8));
        } catch (IOException e) {
            // ファイル読み込みに失敗
            System.out.println(String.format("ファイルの読み込みに失敗しました。ファイル名:%s", INIT_FILE_PATH));
        }
    }

    /**
     * プロパティ値を取得する
     *
     * @param key キー
     * @return 値
     * @throws Exception
     */
    public static String getProperty(final String key) throws Exception {
        return getProperty(key, "");
    }

    /**
     * プロパティ値を取得する
     *
     * @param key キー
     * @param defaultValue デフォルト値
     * @return キーが存在しない場合、デフォルト値
     *          存在する場合、値
     * @throws Exception
     */
    public static String getProperty(final String key, final String defaultValue) throws Exception {

    	if (properties.isEmpty()) {
    		throw new Exception("プロパティが存在しません。");
    	}
    	if (properties.getProperty(key, defaultValue).isEmpty()) {
    		throw new Exception("プロパティが取得できません。キー;" + key);
    	}
        return properties.getProperty(key, defaultValue);
    }
}

// 呼び出し
String str;
try {
	str = PropertyUtil.getProperty("test");
	System.out.println(str);
} catch (Exception e) {
	e.printStackTrace();
}

アドバイス

staticイニシャライザでは例外をthrowできない。
staticイニシャライザ内で発生した例外がthrowされた場合、そのクラスは永久に初期化が完了せず、プログラム中から永久に使用できない。

スポンサーリンク
google 6948682462
google 6948682462

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
google 6948682462