[API] java.util.PropertyResourceBundleクラス

java.util.PropertyResourceBundleは、リソースをプロパティファイルで定義する時に使用するクラスです。

java.util.PropertyResourceBundleの特徴

java.util.PropertyResourceBundleは、以下の特徴があります。

  • リソースをプロパティファイル形式で用意する。
  • 日本語(ISO-8859-1で表現できない文字)を扱う場合は、Unicode変換する必要がある。
    ※native2asciiコマンドを使用すると簡単に変換できます。
(native2ascii構文)
native2ascii <変換元ファイルパス> <変換後ファイルパス>

java.util.PropertyResourceBundleの継承・実装

継承クラス

java.lang.Object
 ・java.util.ResourceBundle
  ・java.util.PropertyResourceBundle

実装インターフェース

・なし

導入バージョン

・JDK1.1

java.util.PropertyResourceBundleのAPI

【主要コンストラクタ】
コンストラクタ名説明
PropertyResourceBundle(InputStream stream)InputStreamからインスタンスを生成する
PropertyResourceBundle(Reader reader)Readerからインスタンスを生成する
【主要メソッド】
戻値型メソッド静的説明
Enumeration<String>getKeys()キーのEnumerationを返す
ObjecthandleGetObject(String key)キーから値を取得する
Set<String>handleKeySet()キーのSetを返す

java.util.PropertyResourceBundleサンプル

例として以下2つのプロパティファイルを定義します。

(items.properties)
item01 = \u308A\u3093\u3054 #「りんご」のUnicode表現 item02 = \u307F\u304B\u3093 #「みかん」のUnicode表現

※日本語はUnicode変換しておく必要があります。

(items_en_US.properties)
item01 = Apple item02 = Orange

(例1)デフォルトLocaleのプロパティファイルを読み込む

(PropertyResourceBundleSample.java)

import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;

public class PropertyResourceBundleSample {
  public static void main(String[] args) {

    //ロケールを生成
    Locale locale = Locale.getDefault();  //デフォルトロケール

    //プロパティファイルからResourceBundleを生成する
    ResourceBundle bundle = PropertyResourceBundle.getBundle("items", locale);

    //キーから値を取得
    String item01 = bundle.getString("item01");
    String item02 = bundle.getString("item02");

    // 値を表示
    System.out.println("Item01: " + item01);
    System.out.println("Item02: " + item02);
  }
}
(実行結果)
C:\>java PropertyResourceBundleSample Item01: りんご Item02: みかん

(例2)英語、米国Localeのプロパティファイルを読み込む

例1のコードの8行目のLocaleを以下のように変更して実行します。

(英語、米国のLocaleを生成するコード)

Locale locale = new Locale("en", "US");  //英語、米国
(実行結果)
C:\>java PropertyResourceBundleSample Item01: Apple Item02: Orange

関連記事

コメント

タイトルとURLをコピーしました