2017年06月18日

Javaでプロパティファイルを使用

Javaで外部ファイルから値をとってプログラム内で使用する例です。
実行してコンソールに「こんにちは」が出たら成功

Eclipseメモ:Shift+Ctrl+F でソースのインデントを揃える
package jp.co.testproject.main;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.file.Paths;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;

public class MyClass {
    /**
     * リソースバンドル
     */
    private static ResourceBundle RESOURCE_BUNDLE;

    /**
     * リソースバンドル取得
     *
     * @return リソースバンドル
     */
    private static ResourceBundle getResourceBundle() {
        try {
            if (RESOURCE_BUNDLE == null) {
                File path = Paths.get("./config").toFile();
                URLClassLoader ucl = new URLClassLoader(new URL[] { path
                        .toURI().toURL() });
                RESOURCE_BUNDLE = ResourceBundle.getBundle("resource",
                        Locale.getDefault(), ucl);
            }
        } catch (IOException | MissingResourceException e) {
            e.printStackTrace();
        }
        return RESOURCE_BUNDLE;
    }

    /**
     * プロパティ設定値取得
     *
     * @param key
     *            キー
     * @param defaultValue
     *            デフォルト値
     * @return プロパティ設定値
     */
    private static String getString(String key, String defaultValue) {
        String value = null;
        try {
            value = getResourceBundle().getString(key);
        } catch (MissingResourceException e) {
            e.printStackTrace();
        }
        return (value == null) ? defaultValue : value;
    }

    public static void main(String... args) {
        // プロジェクト名/configフォルダ配下にpropertiesファイルを置く

        // resource.propertiesファイルの中身(必ずプロパティエディタで編集する。普通のエディタではNG)
        // ----- ----- -----
        // myprj.setting.val01=こんにちは
        // ----- ----- -----

        // プロパティファイルから取得した値表示
        System.out.println(getString("myprj.setting.val01", ""));
    }
}
タグ:JAVA
posted by Hiro at 17:52| Comment(1) | プログラム