モジュール java.base
パッケージ java.util

クラスPropertyResourceBundle


  • public class PropertyResourceBundle
    extends ResourceBundle
    PropertyResourceBundleは、プロパティ・ファイルからの一連のstatic文字列を使用してロケール用のリソースを管理する、ResourceBundleの具象サブクラスです。 リソース・バンドルの詳細については、ResourceBundleを参照してください。

    ほかのタイプのリソース・バンドルと違い、PropertyResourceBundleはサブクラス化されません。 代わりに、リソース・データを格納するプロパティ・ファイルを提供します。 ResourceBundle.getBundleは、自動的に適切なプロパティ・ファイルを探し、そのファイルを参照するPropertyResourceBundleを作成します。 検索とインスタンス化の方法の詳細は、ResourceBundle.getBundleを参照してください。

    次のは、ベース名MyResourcesのリソース・バンドル・ファミリのメンバーを示しています。 テキストでは、バンドル・ファミリのドイツ・メンバーであるバンドル「MyResources_de」を定義します。 このメンバーはPropertyResourceBundleに基づいているため、テキストはMyResources_de.propertiesファイルの内容です(関連するは、ListResourceBundleのサブクラスとして実装されるバンドルをこのファミリに追加する方法を示しています)。 この例のキーの形式は「s1」などです。実際のキーは、バンドルからオブジェクトを取り出すためにプログラムで使用するキーと同じであるかぎり、なんでもかまいません。 キーには、大文字/小文字の区別があります。

     # MessageFormat pattern
     s1=Die Platte \"{1}\" enthält {0}.
    
     # location of {0} in pattern
     s2=1
    
     # sample disk name
     s3=Meine Platte
    
     # first ChoiceFormat choice
     s4=keine Dateien
    
     # second ChoiceFormat choice
     s5=eine Datei
    
     # third ChoiceFormat choice
     s6={0,number} Dateien
    
     # sample date
     s7=3. März 1996
     

    APIのノート:
    PropertyResourceBundleは、プロパティ・ファイルを表すInputStreamまたはReaderから構築できます。 InputStreamからPropertyResourceBundleインスタンスを構築するには、入力ストリームをUTF-8にエンコードする必要があります。 デフォルトでは、入力ストリームの読取り時にMalformedInputExceptionまたはUnmappableCharacterExceptionが発生した場合、PropertyResourceBundleインスタンスは例外前の状態にリセットされ、ISO-8859-1で入力ストリームが再読取りされ、読取りが続行されます。 システム・プロパティjava.util.PropertyResourceBundle.encodingが"ISO-8859-1"または"UTF-8"に設定されている場合、入力ストリームはそのエンコーディングでのみ読み取られ、無効なシーケンスが検出されると例外がスローされます。 「ISO-8859-1」が指定されている場合、ISO-8859-1エンコーディングで表現できない文字は、The Java™Language Specificationの3.3項で定義されているようにUnicode Escapesで表す必要がありますが、Readerを取る他のコンストラクタにはその制限はありません。 このシステム・プロパティでは、他のエンコーディング値は無視されます。 システム・プロパティは、このクラスの初期化時に読み取られ、評価されます。 プロパティーを変更または削除しても、初期化後は影響を受けません。
    実装要件:
    PropertyResourceBundleサブクラスの実装は、それが複数のスレッドで同時に使用される場合、スレッドセーフである必要があります。 このクラスの非抽象メソッドのデフォルト実装はスレッドセーフです。
    導入されたバージョン:
    1.1
    関連項目:
    ResourceBundle, ListResourceBundle, Properties
    • コンストラクタの詳細

      • PropertyResourceBundle

        public PropertyResourceBundle​(InputStream stream)
                               throws IOException
        InputStreamからプロパティ・リソース・バンドルを作成します。 このコンストラクタは、デフォルトでプロパティ・ファイルをUTF-8で読み取ります。 入力ストリームの読取り時にMalformedInputExceptionまたはUnmappableCharacterExceptionが発生した場合、PropertyResourceBundleインスタンスは例外前の状態にリセットされ、ISO-8859-1で入力ストリームを再読取りして読取りを続行します。 システム・プロパティjava.util.PropertyResourceBundle.encodingが"ISO-8859-1"または"UTF-8"に設定されている場合、入力ストリームはそのエンコーディングでのみ読み取られ、無効なシーケンスが検出されると例外がスローされます。 このシステム・プロパティでは、他のエンコーディング値は無視されます。 システム・プロパティは、このクラスの初期化時に読み取られ、評価されます。 プロパティーを変更または削除しても、初期化後は影響を受けません。
        パラメータ:
        stream - 読取り元のプロパティ・ファイルを表すInputStream。
        例外:
        IOException - 入出力エラーが発生した場合
        NullPointerException - streamがnullである場合
        IllegalArgumentException - streamに形式が不正なUnicodeエスケープ・シーケンスが含まれる場合。
        MalformedInputException - システム・プロパティjava.util.PropertyResourceBundle.encodingが「UTF-8」に設定されており、streamに無効なUTF-8バイト・シーケンスが含まれている場合。
        UnmappableCharacterException - システム・プロパティjava.util.PropertyResourceBundle.encodingが「UTF-8」に設定されており、streamにマッピング不可能なUTF-8バイト・シーケンスが含まれている場合。
      • PropertyResourceBundle

        public PropertyResourceBundle​(Reader reader)
                               throws IOException
        Readerからプロパティ・リソース・バンドルを作成します。 コンストラクタPropertyResourceBundle(InputStream)の場合と異なり、入力プロパティ・ファイルのエンコーディングに関する制限はありません。
        パラメータ:
        reader - 読取り元のプロパティ・ファイルを表すReader。
        例外:
        IOException - 入出力エラーが発生した場合
        NullPointerException - readerがnullである場合
        IllegalArgumentException - readerから形式が不正なUnicodeエスケープ・シーケンスが出現する場合。
        導入されたバージョン:
        1.6
    • メソッドの詳細

      • getKeys

        public Enumeration<String> getKeys()
        このResourceBundleとその親バンドル内に含まれるキーのEnumerationを返します。
        定義:
        getKeys、クラスResourceBundle
        戻り値:
        このResourceBundleとその親バンドル内に含まれるキーのEnumeration
        関連項目:
        ResourceBundle.keySet()
      • handleKeySet

        protected Set<String> handleKeySet()
        このResourceBundleのみ含まれるキーのSetを返します。
        オーバーライド:
        handleKeySet、クラスResourceBundle
        戻り値:
        このResourceBundleにのみ含まれているキーのSet
        導入されたバージョン:
        1.6
        関連項目:
        ResourceBundle.keySet()