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を返す | |
Object | handleGetObject(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
コメント