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

クラスProperties

  • すべての実装されたインタフェース:
    Serializable, Cloneable, Map<Object,Object>
    直系の既知のサブクラス:
    Provider


    public class Properties
    extends Hashtable<Object,Object>
    Propertiesクラスは、プロパティの永続セットを表します。 Propertiesを、ストリームへ保管したり、ストリームからロードしたりできます。 プロパティ・リストの各キー、およびそれに対応する値は文字列です。

    プロパティ・リストには、そのデフォルト値として別のプロパティ・リストを含めることができます。元のプロパティ・リストでプロパティ・キーが見つからない場合は、この2番目のプロパティ・リストが検索されます。

    PropertiesHashtableを継承するので、Propertiesオブジェクトに対してputメソッドおよびputAllメソッドを適用できます。 しかし、これらのメソッドを使用することは推奨されません。これらのメソッドを使うと、呼出し側はキーまたは値がStringsではないエントリを挿入できるからです。 setPropertyメソッドを代わりに使用してください。 String以外のキーまたは値を格納する安全性の低いPropertiesオブジェクトでstoreメソッドまたはsaveメソッドが呼び出されると、その呼出しは失敗します。 同様に、String以外のキーを格納する安全性の低いPropertiesオブジェクトでpropertyNamesまたはlistメソッドが呼び出されると、その呼出しは失敗します。

    このクラス"コレクション・ビュー" (すなわち、entrySet()keySet()、およびvalues())のiteratorメソッドによって返されたイテレータは、高速の(ハッシュテーブルの実装とは異なり)を生成しません。 これらのイテレータは、構築時に存在していた要素を1回だけトラバースすることが保証されており、構築後の変更を反映することがあります(しかし、保証されない)。

    load(Reader)/store(Writer, String)メソッドは、以下に示す単純行指向のフォーマットでプロパティを文字ベース・ストリームに対してロードおよび格納します。 load(InputStream)/store(OutputStream, String)メソッドはload(Reader)/store(Writer, String)ペアと同様に動作しますが、入力/出力ストリームがISO 8859-1文字エンコーディングでエンコードされる点が異なります。 このエンコーディングで直接表現できない文字は、『Java™言語仕様』のセクション3.3で定義されているUnicodeエスケープを使用して記述できます。エスケープ・シーケンスで許可されるのは、単一u文字だけです。

    loadFromXML(InputStream)およびstoreToXML(OutputStream, String, String)メソッドは、プロパティを単純なXML形式としてロードおよび格納できます。 デフォルトではUTF-8文字エンコーディングが使用されますが、必要に応じてエンコーディングを指定できます。 実装はUTF-8とUTF-16をサポートする必要があり、その他のエンコーディングもサポートできます。 XMLプロパティ・ドキュメントでは、次のDOCTYPE宣言が使用されます。

     <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
     
    プロパティをエクスポート/インポートするときに、システムURI (http://java.sun.com/dtd/properties.dtd)にはアクセスしません。システムURIは、DTDを一意に識別する文字列として使用されます。その内容は次のとおりです。
        <?xml version="1.0" encoding="UTF-8"?>
    
        <!-- DTD for properties -->
    
        <!ELEMENT properties ( comment?, entry* ) >
    
        <!ATTLIST properties version CDATA #FIXED "1.0">
    
        <!ELEMENT comment (#PCDATA) >
    
        <!ELEMENT entry (#PCDATA) >
    
        <!ATTLIST entry key CDATA #REQUIRED>
     

    このクラスはスレッドセーフです。外部の同期化を行わなくても、複数のスレッドで単一のPropertiesオブジェクトを共有できます。

    導入されたバージョン:
    1.0
    関連項目:
    直列化された形式
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      protected Properties defaults
      プロパティ・リストにないキーのデフォルト値を持つプロパティ・リストです。
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      Properties​()
      デフォルト値を持たない空のプロパティ・リストを作成します。
      Properties​(Properties defaults)
      指定されたデフォルト値を持つ空のプロパティ・リストを作成します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 具象メソッド 非推奨のメソッド 
      修飾子と型 メソッド 説明
      void clear​()
      このハッシュ表を消去して、キーがない状態にします。
      Object clone​()
      ハッシュ表のコピーを作成します。
      Object compute​(Object key, BiFunction<? super Object,? super Object,?> remappingFunction)
      指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull)。
      Object computeIfAbsent​(Object key, Function<? super Object,?> mappingFunction)
      指定されたキーがまだ値に関連付けられていない(またはnullにマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、nullでない場合はそれをこのマップに入力します。
      Object computeIfPresent​(Object key, BiFunction<? super Object,? super Object,?> remappingFunction)
      指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。
      boolean contains​(Object value)
      指定された値にマップされているキーが、ハッシュ表にあるかどうかを判定します。
      boolean containsKey​(Object key)
      指定されたオブジェクトが、ハッシュ表のキーかどうかを判定します。
      boolean containsValue​(Object value)
      このハッシュ表が1つまたは複数のキーをこの値にマッピングする場合にtrueを返します。
      Enumeration<Object> elements​()
      ハッシュ表にある値のリストを返します。
      Set<Map.Entry<Object,Object>> entrySet​()
      このマップに含まれるマッピングのSetビューを返します。
      boolean equals​(Object o)
      Mapインタフェースでの定義に従って、指定されたObjectとこのMapを比較して等しいかどうかを判定します。
      void forEach​(BiConsumer<? super Object,? super Object> action)
      このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。
      Object get​(Object key)
      指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。
      Object getOrDefault​(Object key, Object defaultValue)
      指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValueを返します。
      String getProperty​(String key)
      指定されたキーを持つプロパティを、プロパティ・リストから探します。
      String getProperty​(String key, String defaultValue)
      指定されたキーを持つプロパティを、プロパティ・リストから探します。
      int hashCode​()
      Mapインタフェースの定義に従って、このMapのハッシュ・コード値を返します。
      boolean isEmpty​()
      値にマップされているキーが、ハッシュ表にあるかどうかを判定します。
      Enumeration<Object> keys​()
      ハッシュ表にあるキーのリストを返します。
      Set<Object> keySet​()
      このマップに含まれるキーのSetビューを返します。
      void list​(PrintStream out)
      指定された出力ストリームに、プロパティ・リストを出力します。
      void list​(PrintWriter out)
      指定された出力ストリームに、プロパティ・リストを出力します。
      void load​(InputStream inStream)
      入力バイト・ストリームからキーと要素が対になったプロパティ・リストを読み込みます。
      void load​(Reader reader)
      プロパティ・リスト(キーと要素のペア)を入力文字ストリームから単純な行指向形式で読み込みます。
      void loadFromXML​(InputStream in)
      指定された入力ストリーム上のXMLドキュメントにより表されるすべてのプロパティを、このプロパティ表にロードします。
      Object merge​(Object key, Object value, BiFunction<? super Object,? super Object,?> remappingFunction)
      指定されたキーがまだ値と関連付けられていないかnullと関連付けられている場合、指定されたnull以外の値に関連付けます。
      Enumeration<?> propertyNames​()
      メイン・プロパティ・リストに同じ名前のキーが見つからない場合は、デフォルトのプロパティ・リストにある個別のキーを含む、このプロパティ・リストにあるすべてのキーの列挙を返します。
      Object put​(Object key, Object value)
      このハッシュ表で、指定されたkeyを指定されたvalueにマップします。
      void putAll​(Map<?,?> t)
      指定したマップからこのハッシュ表にすべてのマッピングをコピーします。
      Object putIfAbsent​(Object key, Object value)
      指定されたキーがまだ値に関連付けられていない(または、nullにマップされている)場合は、それを指定された値に関連付けてnullを返します。それ以外の場合は、現在の値を返します。
      protected void rehash​()
      ハッシュ表の容量を増やし、それを内部的に再編成して、エントリを調整してアクセスをより効率的にします。
      Object remove​(Object key)
      キー(およびそれに対応する値)をハッシュ表から削除します。
      boolean remove​(Object key, Object value)
      指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。
      Object replace​(Object key, Object value)
      指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。
      void replaceAll​(BiFunction<? super Object,? super Object,?> function)
      すべてのエントリが処理されるか、または関数が例外をスローするまで、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。
      void save​(OutputStream out, String comments)
      非推奨。 
      このメソッドは、プロパティ・リストの保存中に入出力エラーが発生しても、IOExceptionをスローしません。 プロパティ・リストの保存に推奨される方法は、store(OutputStream out, String comments)メソッドまたはstoreToXML(OutputStream os, String comment)メソッドを使用することです。
      Object setProperty​(String key, String value)
      Hashtableのメソッドputを呼び出します。
      int size​()
      ハッシュ表にあるキーの数を返します。
      void store​(OutputStream out, String comments)
      このProperties表内のプロパティ・リスト(キーと要素のペア)を、load(InputStream)メソッドを使用してProperties表にロードするのに適した形式で出力ストリームに書き込みます。
      void store​(Writer writer, String comments)
      このProperties表内のプロパティ・リスト(キーと要素のペア)を、load(Reader)メソッドを使用するのに適した形式で出力文字ストリームに書き込みます。
      void storeToXML​(OutputStream os, String comment)
      この表に含まれるすべてのプロパティを表すXMLドキュメントを発行します。
      void storeToXML​(OutputStream os, String comment, String encoding)
      この表に含まれるすべてのプロパティを表すXMLドキュメントを、指定されたエンコーディングを使用して発行します。
      Set<String> stringPropertyNames​()
      このプロパティ・リストからキーと対応する値が文字列である変更不可能なキー・セットを返します。同じ名前のキーがメイン・プロパティ・リストから見つからない場合は、デフォルト・プロパティ・リスト内の別のキーも含めて返します。
      String toString​()
      このHashtableオブジェクトの文字列表現を、ASCII文字(カンマとスペース)で区切り、カッコで囲んだ一連のエントリの形式で返します。
      Collection<Object> values​()
      このマップに含まれる値のCollectionビューを返します。
    • フィールドの詳細

      • defaults

        protected Properties defaults
        プロパティ・リストにないキーのデフォルト値を持つプロパティ・リストです。
    • コンストラクタの詳細

      • プロパティ

        public Properties​()
        デフォルト値を持たない空のプロパティ・リストを作成します。
      • プロパティ

        public Properties​(Properties defaults)
        指定されたデフォルト値を持つ空のプロパティ・リストを作成します。
        パラメータ:
        defaults - デフォルト値。
    • メソッドの詳細

      • setProperty

        public Object setProperty​(String key,
                                  String value)
        Hashtableのメソッドputを呼び出します。 getPropertyメソッドと対になります。 プロパティのキーおよび値に文字列を使うことを義務付けます。 返される値はputへのHashtable呼出しの結果です。
        パラメータ:
        key - プロパティ・リストに配置されるキー。
        value - keyに対応する値。
        戻り値:
        このプロパティ・リスト内での指定されたキーの以前の値。このキーが値を持っていなかった場合はnull
        導入されたバージョン:
        1.2
        関連項目:
        getProperty(java.lang.String)
      • load

        public void load​(Reader reader)
                  throws IOException
        プロパティ・リスト(キーと要素のペア)を入力文字ストリームから単純な行指向形式で読み込みます。

        Propertiesは行単位で処理されます。 行には自然行論理行の2種類があります。 自然行は、行末記号(\n\r、または\r\n)のセットまたはストリームの末尾で区切られた1行の文字列として定義されます。 自然行は、空白の行やコメント行であるか、キーと要素のペアの全部または一部を保持する場合があります。 論理行は、キーと要素のペアの全データを保持します。バックスラッシュ文字\を使用して行末記号シーケンスをエスケープすることで、隣接する複数の自然行にまたがる場合があります。 コメント行を、この方法で複数行にまたがらせることはできません。後述するように、コメントであるすべての自然行には、それぞれにコメント・インジケータが必要です。 行は、ストリームの終わりに達するまで入力から読み込まれます。

        空白文字だけを含む自然行は、空白と見なされて無視されます。 コメント行には、ASCII '#'または'!'が最初の非空白文字として含まれます。コメント行も無視され、キーと要素の情報はエンコードされません。 このフォーマットは、行終了文字に加え、文字スペース(' ''\u0020')、タブ('\t''\u0009')、およびフォーム・フィード('\f''\u000C')を空白と見なします。

        論理行が複数の自然行にまたがる場合、行末記号シーケンスをエスケープするバックスラッシュ、行末記号シーケンス、および次の行の先頭の空白文字は、キーまたは要素の値に何の影響も及ぼしません。 (ロード時の)キーと要素の構文解析に関する残りの記述では、行継続文字が削除されたあとで、キーと要素を構成するすべての文字が単一の自然行に表示されることを前提として説明します。 行末記号がエスケープされているかどうかを判定する場合、行末記号シーケンスの前の文字を調べるだけでは十分ではありません。行末記号がエスケープされるためには、連続した奇数のバックスラッシュが存在する必要があります。 入力は左から右に処理されるため、行末記号の前(またはほかの場所)に連続したバックスラッシュが2n (ゼロでない偶数)個存在する場合、エスケープ処理後にn個のバックスラッシュがエンコードされます。

        キーには最初の非空白文字から、最初のエスケープされていない'='':'、または空白文字の手前までの文字すべて(行末記号を除く)が含まれます。 これらキーの終わりを示す文字はすべて、バックスラッシュを前に付けてエスケープすることでキーに含めることができます。たとえば、

        \:\=

        には、2文字のキー":="が含まれます。 行末記号は、エスケープ・シーケンス\rおよび\nを使用して含めることができます。 キーのあとの空白はすべてスキップされます。キーに続く最初の非空白文字が'='または':'である場合、これは無視され、その後の空白文字もすべてスキップされます。 行上の残りのすべての文字は、関連付けられた要素文字列の一部になります。残りの文字がない場合、その要素は空の文字列""です。 キーと要素を構成する生の文字シーケンスが識別されると、エスケープ処理が前述の方法で実行されます。

        たとえば、次の3行はそれぞれキー"Truth"と、関連した要素値"Beauty"を表します。

         Truth = Beauty
          Truth:Beauty
         Truth                    :Beauty
         
        また、次の3行は1つのプロパティを表します。
         fruits                           apple, banana, pear, \
             *                                  cantaloupe, watermelon, \
             *                                  kiwi, mango
         
        キーは"fruits"で、次の要素に関連付けれられています。
        "apple, banana, pear, cantaloupe, watermelon, kiwi, mango"
        最終的な結果でカンマのあとに必ずスペースが表示されるように、各\の前にスペースがあります。行の終わりを示す\と、継続行の先頭にある空白は破棄され、ほかの文字に置換されません

        また、次の3番目の例では、行:

        cheeses
         
        は、キーが"cheeses"で、関連付けられている要素が空の文字列""であることを表します。

        キーと要素に含まれる文字は、文字リテラルや文字列リテラルで使用されるエスケープ・シーケンスに似たシーケンスで表現できます(Java™言語仕様のセクション3.3と3.10.6を参照)。 文字および文字列で使用される文字エスケープ・シーケンスやUnicodeエスケープとの違いは、次のとおりです。

        • 8進数のエスケープは認識されない
        • 文字シーケンス\bは、バックスペース文字を表さない
        • このメソッドは、無効なエスケープ文字の前のバックスラッシュ文字\をエラーとして処理しない。バックスラッシュは自動的に削除される。 たとえば、Java文字列にシーケンス"\z"が含まれていると、コンパイル時にエラーが発生する。 これに対し、このメソッドは自動的にバックスラッシュを削除する。 このため、このメソッドでは2文字のシーケンス"\b"は単一の文字'b'と等価であると見なされる。
        • 単一引用符および二重引用符では、エスケープは不要である。ただし、前述のルールに従って、バックスラッシュに続く単一および二重引用符文字は、それぞれ単一引用符文字と二重引用符文字として処理される。
        • Unicodeエスケープ・シーケンスで許可されるのは単一u文字のみ。

        指定されたストリームは、このメソッドが復帰したあとも開いたままです。

        パラメータ:
        reader - 入力文字ストリーム。
        例外:
        IOException - 入力ストリームからの読込み中にエラーが発生した場合。
        IllegalArgumentException - 形式が不正なUnicodeエスケープが入力内に現れた場合。
        NullPointerException - readerがnullである場合
        導入されたバージョン:
        1.6
      • load

        public void load​(InputStream inStream)
                  throws IOException
        入力バイト・ストリームからキーと要素が対になったプロパティ・リストを読み込みます。 入力ストリームはload(Reader)で規定される単純行指向フォーマットで、ISO 8859-1文字エンコーディングを使用することが前提されます。つまり、各バイトは1つのLatin1文字です。 Latin1にない文字、および一部の特殊文字は、キーや要素内で『Java™言語仕様』のセクション3.3で定義されているUnicodeエスケープを使用して表現されます。

        指定されたストリームは、このメソッドが復帰したあとも開いたままです。

        パラメータ:
        inStream - 入力ストリーム。
        例外:
        IOException - 入力ストリームからの読込み中にエラーが発生した場合。
        IllegalArgumentException - 入力ストリームに形式が不正なUnicodeエスケープ・シーケンスが含まれる場合。
        NullPointerException - inStreamがnullの場合。
        導入されたバージョン:
        1.2
      • save

        @Deprecated
        public void save​(OutputStream out,
                         String comments)
        非推奨。 このメソッドは、プロパティ・リストの保存中に入出力エラーが発生しても、IOExceptionをスローしません。 プロパティ・リストの保存に推奨される方法は、store(OutputStream out, String comments)メソッドまたはstoreToXML(OutputStream os, String comment)メソッドを使用することです。
        store(OutputStream out, String comments)メソッドを呼び出し、スローされたIOExceptionを抑止します。
        パラメータ:
        out - 出力ストリーム。
        comments - プロパティ・リストの記述。
        例外:
        ClassCastException - このPropertiesオブジェクトに、Stringsではないキーまたは値が含まれている場合。
      • store

        public void store​(Writer writer,
                          String comments)
                   throws IOException
        このProperties表内のプロパティ・リスト(キーと要素のペア)を、load(Reader)メソッドを使用するのに適した形式で出力文字ストリームに書き込みます。

        このProperties表(存在する場合)のデフォルト表からのプロパティは、このメソッドによって書き込まれません

        comments引数がnullでない場合は、ASCII文字の#、commentsの文字列、および行区切り文字が最初に出力ストリームに書き込まれます。 このため、commentsは識別コメントとして使うことができます。 改行(\n)、キャリッジ・リターン(\r)、改行が直後に続くキャリッジ・リターン、のいずれかがコメント内に現れると、それは、Writerによって生成された1個の行区切り文字で置き換えられます。そして、コメント内の次の文字が文字#でも文字!でもなかった場合、その行区切り文字のあとにASCII #が書き出されます。

        次に、ASCII文字の#、現在の日時(DatetoStringメソッドによって現在時刻が生成されるのと同様)、およびWriterによって生成される行区切り文字からなるコメント行が書き込まれます。

        続いて、このProperties表内のすべてのエントリが1行に1つずつ書き出されます。 各エントリのキー文字列、ASCII文字の=、関連付けられた要素文字列が書き込まれます。 キーの場合、すべての空白文字は、前に\文字を付けて書き込まれます。 要素の場合、埋込み空白文字でも後書き空白文字でもない先行空白文字は、前に\を付けて書き込まれます。 キーと要素の文字#!=、および: は、必ず正しくロードされるように、前にバックスラッシュを付けて書き込まれます。

        エントリが書き込まれたあとで、出力ストリームがフラッシュされます。 出力ストリームはこのメソッドから復帰したあとも開いたままです。

        パラメータ:
        writer - 出力文字ストリーム・ライター。
        comments - プロパティ・リストの記述。
        例外:
        IOException - 指定された出力ストリームへのこのプロパティ・リストの書込み時にIOExceptionがスローされた場合。
        ClassCastException - このPropertiesオブジェクトに、Stringsではないキーまたは値が含まれている場合。
        NullPointerException - writerがnullである場合。
        導入されたバージョン:
        1.6
      • store

        public void store​(OutputStream out,
                          String comments)
                   throws IOException
        このProperties表内のプロパティ・リスト(キーと要素のペア)を、load(InputStream)メソッドを使用してProperties表にロードするのに適した形式で出力ストリームに書き込みます。

        このProperties表(存在する場合)のデフォルト表からのプロパティは、このメソッドによって書き込まれません

        このメソッドは、コメントおよびプロパティのキーと値を、store(Writer)で規定されたのと同じ形式で出力します。ただし、次の点が異なります。

        • ストリームは、ISO 8859-1文字エンコーディングを使用して書き込まれる。
        • コメント内のLatin-1でない文字は、適切なUnicode 16進値xxxxを使用して\uxxxxとして書き込まれる。
        • プロパティのキーまたは値に含まれる\u0020より小さい文字および\u007Eより大きい文字は、適切な16進値xxxxを使用して\uxxxxとして書き込まれる。

        エントリが書き込まれたあとで、出力ストリームがフラッシュされます。 出力ストリームはこのメソッドから復帰したあとも開いたままです。

        パラメータ:
        out - 出力ストリーム。
        comments - プロパティ・リストの記述。
        例外:
        IOException - 指定された出力ストリームへのこのプロパティ・リストの書込み時にIOExceptionがスローされた場合。
        ClassCastException - このPropertiesオブジェクトに、Stringsではないキーまたは値が含まれている場合。
        NullPointerException - outがnullである場合。
        導入されたバージョン:
        1.2
      • loadFromXML

        public void loadFromXML​(InputStream in)
                         throws IOException,
                                InvalidPropertiesFormatException
        指定された入力ストリーム上のXMLドキュメントにより表されるすべてのプロパティを、このプロパティ表にロードします。

        XMLドキュメントには、次のDOCTYPE宣言が必要です。

         <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
         
        さらに、ドキュメントは前述のプロパティDTDを満たす必要があります。

        実装は、UTF-8またはUTF-16エンコーディングを使用するXMLドキュメントを読み取る必要があります。 実装は追加のエンコーディングをサポートできます。

        このメソッドが戻ると、指定されたストリームが閉じられます。

        パラメータ:
        in - XMLドキュメントの読込み元の入力ストリーム。
        例外:
        IOException - 指定された入力ストリームからの読込み時にIOExceptionが発生した場合。
        UnsupportedEncodingException - ドキュメントのエンコーディング宣言を読み取ることができ、そこにサポートされていないエンコーディングが指定されている場合
        InvalidPropertiesFormatException - 入力ストリーム上のデータが、要求されたドキュメント型を持つ有効なXMLドキュメントにならない場合。
        NullPointerException - inがnullである場合。
        導入されたバージョン:
        1.5
        関連項目:
        storeToXML(OutputStream, String, String)Character Encoding in Entities
      • storeToXML

        public void storeToXML​(OutputStream os,
                               String comment)
                        throws IOException
        この表に含まれるすべてのプロパティを表すXMLドキュメントを発行します。

        このメソッドをprops.storeToXML(os, comment)の形式で呼び出した場合、props.storeToXML(os, comment, "UTF-8");の呼び出しと同じ結果が得られます。

        パラメータ:
        os - XMLドキュメントの発行先の出力ストリーム
        comment - プロパティ・リストの記述。コメントが必要ない場合はnull
        例外:
        IOException - 指定された出力ストリームへの書込み時にIOExceptionが発生した場合。
        NullPointerException - osがnullである場合。
        ClassCastException - このPropertiesオブジェクトに、Stringsではないキーまたは値が含まれている場合。
        導入されたバージョン:
        1.5
        関連項目:
        loadFromXML(InputStream)
      • storeToXML

        public void storeToXML​(OutputStream os,
                               String comment,
                               String encoding)
                        throws IOException
        この表に含まれるすべてのプロパティを表すXMLドキュメントを、指定されたエンコーディングを使用して発行します。

        このXMLドキュメントでは、次のDOCTYPEが宣言されます。

         <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
         

        指定されたコメントがnullの場合、ドキュメントにコメントは格納されません。

        実装は、UTF-8またはUTF-16エンコーディングを使用するXMLドキュメントの書込みをサポートする必要があります。 実装は追加のエンコーディングをサポートできます。

        指定されたストリームは、このメソッドが復帰したあとも開いたままです。

        パラメータ:
        os - XMLドキュメントの発行先の出力ストリーム
        comment - プロパティ・リストの記述。コメントが必要ない場合はnull
        encoding - サポートされる文字エンコーディングの名前
        例外:
        IOException - 指定された出力ストリームへの書込み時にIOExceptionが発生した場合。
        UnsupportedEncodingException - エンコーディングが実装によってサポートされない場合。
        NullPointerException - osnull、またはencodingnullの場合。
        ClassCastException - このPropertiesオブジェクトに、Stringsではないキーまたは値が含まれている場合。
        導入されたバージョン:
        1.5
        関連項目:
        loadFromXML(InputStream)Character Encoding in Entities
      • getProperty

        public String getProperty​(String key)
        指定されたキーを持つプロパティを、プロパティ・リストから探します。 そのキーがプロパティ・リストにないと、デフォルトのプロパティ・リスト、さらにそのデフォルト値が繰返し調べられます。 そのプロパティが見つからない場合は、nullが返されます。
        パラメータ:
        key - プロパティ・キー。
        戻り値:
        指定されたキー値を持つこのプロパティ・リストの値。
        関連項目:
        setProperty(java.lang.String, java.lang.String), defaults
      • getProperty

        public String getProperty​(String key,
                                  String defaultValue)
        指定されたキーを持つプロパティを、プロパティ・リストから探します。 そのキーがプロパティ・リストにないと、デフォルトのプロパティ・リスト、さらにそのデフォルト値が繰返し調べられます。 そのプロパティが見つからない場合は、デフォルト値の引数が返されます。
        パラメータ:
        key - ハッシュ表キー。
        defaultValue - デフォルト値。
        戻り値:
        指定されたキー値を持つこのプロパティ・リストの値。
        関連項目:
        setProperty(java.lang.String, java.lang.String), defaults
      • propertyNames

        public Enumeration<?> propertyNames​()
        メイン・プロパティ・リストに同じ名前のキーが見つからない場合は、デフォルトのプロパティ・リストにある個別のキーを含む、このプロパティ・リストにあるすべてのキーの列挙を返します。
        戻り値:
        プロパティ・リストにあるすべてのキーの列挙。デフォルトのプロパティ・リストにあるキーを含む。
        例外:
        ClassCastException - 文字列でないキーがこのプロパティ・リスト内に存在する場合。
        関連項目:
        Enumeration, defaults, stringPropertyNames()
      • stringPropertyNames

        public Set<String> stringPropertyNames​()
        このプロパティ・リストからキーと対応する値が文字列である変更不可能なキー・セットを返します。同じ名前のキーがメイン・プロパティ・リストから見つからない場合は、デフォルト・プロパティ・リスト内の別のキーも含めて返します。 キーまたは値がString型でないプロパティは省略されます。

        返されたセットは、このPropertiesオブジェクトによってサポートされていません。 このPropertiesオブジェクトへの変更は、返されたセットに反映されません。

        戻り値:
        このプロパティ・リスト内の変更不可能なキーのセット。デフォルトのプロパティ・リストのキーを含め、キーとその対応する値が文字列です。
        導入されたバージョン:
        1.6
        関連項目:
        defaults
      • list

        public void list​(PrintStream out)
        指定された出力ストリームに、プロパティ・リストを出力します。 このメソッドはデバッグに便利です。
        パラメータ:
        out - 出力ストリーム。
        例外:
        ClassCastException - 文字列でないキーがこのプロパティ・リスト内に存在する場合。
      • list

        public void list​(PrintWriter out)
        指定された出力ストリームに、プロパティ・リストを出力します。 このメソッドはデバッグに便利です。
        パラメータ:
        out - 出力ストリーム。
        例外:
        ClassCastException - 文字列でないキーがこのプロパティ・リスト内に存在する場合。
        導入されたバージョン:
        1.1
      • size

        public int size​()
        クラスからコピーされた説明: Hashtable
        ハッシュ表にあるキーの数を返します。
        定義:
        size、インタフェース: Map<Object,Object>
        オーバーライド:
        クラスHashtable<Object,Object>size
        戻り値:
        ハッシュ表にあるキーの数。
      • isEmpty

        public boolean isEmpty​()
        クラスからコピーされた説明: Hashtable
        値にマップされているキーが、ハッシュ表にあるかどうかを判定します。
        定義:
        isEmpty、インタフェース: Map<Object,Object>
        オーバーライド:
        クラスHashtable<Object,Object>isEmpty
        戻り値:
        値にマップされているキーがハッシュ表にない場合はtrue、ある場合はfalse
      • keys

        public Enumeration<Object> keys​()
        クラスからコピーされた説明: Hashtable
        ハッシュ表にあるキーのリストを返します。 返されたオブジェクトのEnumerationメソッドを使用して、キーを順番に取得します。 ハッシュテーブルがキーの上で列挙している間に構造的に変更されている場合、列挙型の結果は未定義です。
        オーバーライド:
        keys、クラス: Hashtable<Object,Object>
        戻り値:
        ハッシュ表にあるキーのリスト。
        関連項目:
        Enumeration, Hashtable.elements(), Hashtable.keySet(), Map
      • elements

        public Enumeration<Object> elements​()
        クラスからコピーされた説明: Hashtable
        ハッシュ表にある値のリストを返します。 これらの要素を順次に取り出すには、Enumerationのメソッドを使用します。 値を列挙型しながらハッシュテーブルが構造的に変更された場合、列挙型の結果は未定義です。
        オーバーライド:
        elements、クラス: Hashtable<Object,Object>
        戻り値:
        ハッシュ表にある値のリスト。
        関連項目:
        Enumeration, Hashtable.keys(), Hashtable.values(), Map
      • contains

        public boolean contains​(Object value)
        クラスからコピーされた説明: Hashtable
        指定された値にマップされているキーが、ハッシュ表にあるかどうかを判定します。 この操作は、containsKeyメソッドよりも負荷がかかります。

        このメソッドは、機能の点でcontainsValue (コレクション・フレームワークのMapインタフェースの一部)と同じです。

        オーバーライド:
        クラスHashtable<Object,Object>contains
        パラメータ:
        value - 検索する値
        戻り値:
        あるキーが、equalsメソッドで決められている、ハッシュ表のvalue引数にマッピングする場合はtrue、そうでない場合はfalse
      • containsValue

        public boolean containsValue​(Object value)
        クラスからコピーされた説明: Hashtable
        このハッシュ表が1つまたは複数のキーをこの値にマッピングする場合にtrueを返します。

        このメソッドは、機能の点でcontains (Mapインタフェースに先行する)と同じです。

        定義:
        containsValue、インタフェース: Map<Object,Object>
        オーバーライド:
        クラスHashtable<Object,Object>containsValue
        パラメータ:
        value - ハッシュ表にあるかどうかを判定される値
        戻り値:
        このマップが1つまたは複数のキーを指定された値にマッピングしている場合はtrue
      • containsKey

        public boolean containsKey​(Object key)
        クラスからコピーされた説明: Hashtable
        指定されたオブジェクトが、ハッシュ表のキーかどうかを判定します。
        定義:
        containsKey、インタフェース: Map<Object,Object>
        オーバーライド:
        クラスHashtable<Object,Object>containsKey
        パラメータ:
        key - 使用可能なキー
        戻り値:
        equalsメソッドで決められているように、指定されたオブジェクトがこのハッシュ表のキーである場合はtrue、そうでない場合はfalse
        関連項目:
        Hashtable.contains(Object)
      • get

        public Object get​(Object key)
        クラスからコピーされた説明: Hashtable
        指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。

        つまり、このメソッドは、(key.equals(k))となるキーkから値vへのマッピングがこのマップに含まれている場合はvを返し、それ以外の場合はnullを返します。 このようなマッピングは1つのみ存在できます。

        定義:
        get、インタフェース: Map<Object,Object>
        オーバーライド:
        get、クラス: Hashtable<Object,Object>
        パラメータ:
        key - 関連付けられた値が返される鍵
        戻り値:
        指定されたキーがマップされている値。そのキーのマッピングがこのマップに含まれていない場合はnull
        関連項目:
        Hashtable.put(Object, Object)
      • put

        public Object put​(Object key,
                          Object value)
        クラスからコピーされた説明: Hashtable
        このハッシュ表で、指定されたkeyを指定されたvalueにマップします。 キーや値はnullにすることはできません。

        valueを取得するには、元のkeyに等しいkeyを指定してgetメソッドを呼び出します。

        定義:
        put、インタフェース: Map<Object,Object>
        オーバーライド:
        put、クラス: Hashtable<Object,Object>
        パラメータ:
        key - ハッシュ表キー
        value - 値
        戻り値:
        ハッシュ表の指定されたキーの前の値。それがない場合はnull
        関連項目:
        Object.equals(Object), Hashtable.get(Object)
      • remove

        public Object remove​(Object key)
        クラスからコピーされた説明: Hashtable
        キー(およびそれに対応する値)をハッシュ表から削除します。 そのキーがハッシュ表にない場合は、何も行いません。
        定義:
        remove、インタフェース: Map<Object,Object>
        オーバーライド:
        remove、クラス: Hashtable<Object,Object>
        パラメータ:
        key - 削除するキー
        戻り値:
        ハッシュ表でそのキーにマップされている値。マップされている値がない場合はnull
      • putAll

        public void putAll​(Map<?,?> t)
        クラスからコピーされた説明: Hashtable
        指定したマップからこのハッシュ表にすべてのマッピングをコピーします。 これにより、ハッシュ表が指定されたマップ内に現在あるキーのすべてに対して持っていたマッピングが置き換えられます。
        定義:
        putAll、インタフェース: Map<Object,Object>
        オーバーライド:
        putAll、クラス: Hashtable<Object,Object>
        パラメータ:
        t - このマップに格納されるマッピング
      • clear

        public void clear​()
        クラスからコピーされた説明: Hashtable
        このハッシュ表を消去して、キーがない状態にします。
        定義:
        clear、インタフェース: Map<Object,Object>
        オーバーライド:
        clear、クラス: Hashtable<Object,Object>
      • toString

        public String toString​()
        クラスからコピーされた説明: Hashtable
        このHashtableオブジェクトの文字列表現を、ASCII文字(カンマとスペース)で区切り、カッコで囲んだ一連のエントリの形式で返します。 各エントリはキー、等符号=、および関連した要素として描画され、toStringメソッドはキーおよび要素を文字列に変換するために使用されます。
        オーバーライド:
        toString、クラス: Hashtable<Object,Object>
        戻り値:
        このハッシュ表の文字列表現
      • keySet

        public Set<Object> keySet​()
        クラスからコピーされた説明: Hashtable
        このマップに含まれるキーのSetビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されていません(イテレータ自身のremoveオペレーションを除く)。 セットは要素の削除をサポートします。Iterator.removeSet.removeremoveAllretainAll、およびclearオペレーションで対応するマッピングをマップから削除します。 addまたはaddAll操作はサポートされていません。
        定義:
        keySet、インタフェース: Map<Object,Object>
        オーバーライド:
        keySet、クラス: Hashtable<Object,Object>
        戻り値:
        マップに含まれているキーのセット・ビュー
      • values

        public Collection<Object> values​()
        クラスからコピーされた説明: Hashtable
        このマップに含まれる値のCollectionビューを返します。 コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。 コレクションの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremoveオペレーションを除く)。 コレクションは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.removeCollection.removeremoveAllretainAll、およびclearオペレーションを通して行います。 addまたはaddAll操作はサポートされていません。
        定義:
        values、インタフェース: Map<Object,Object>
        オーバーライド:
        values、クラス: Hashtable<Object,Object>
        戻り値:
        マップ内に含まれている値のコレクション・ビュー
      • entrySet

        public Set<Map.Entry<Object,Object>> entrySet​()
        クラスからコピーされた説明: Hashtable
        このマップに含まれるマッピングのSetビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremoveオペレーション、またはイテレータにより返されるマップ・エントリに対するsetValueオペレーションを除く)。 セットは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.removeSet.removeremoveAllretainAll、およびclearオペレーションを通して行います。 addまたはaddAll操作はサポートされていません。
        定義:
        entrySet、インタフェース: Map<Object,Object>
        オーバーライド:
        entrySet、クラス: Hashtable<Object,Object>
        戻り値:
        マップ内に保持されているマッピングのセット・ビュー
      • equals

        public boolean equals​(Object o)
        クラスからコピーされた説明: Hashtable
        Mapインタフェースでの定義に従って、指定されたObjectとこのMapを比較して等しいかどうかを判定します。
        定義:
        equals、インタフェース: Map<Object,Object>
        オーバーライド:
        クラスHashtable<Object,Object>equals
        パラメータ:
        o - Hashtableと等しいかどうかを比較するオブジェクト
        戻り値:
        指定されたObjectがこのMapと等しい場合はtrue
        関連項目:
        Map.equals(Object)
      • hashCode

        public int hashCode​()
        クラスからコピーされた説明: Hashtable
        Mapインタフェースの定義に従って、このMapのハッシュ・コード値を返します。
        定義:
        hashCode、インタフェース: Map<Object,Object>
        オーバーライド:
        クラスHashtable<Object,Object>hashCode
        戻り値:
        このオブジェクトのハッシュ・コード値。
        関連項目:
        Map.hashCode()
      • getOrDefault

        public Object getOrDefault​(Object key,
                                   Object defaultValue)
        インタフェースからコピーされた説明: Map
        指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合はdefaultValueを返します。
        定義:
        getOrDefault、インタフェース: Map<Object,Object>
        オーバーライド:
        getOrDefault、クラス: Hashtable<Object,Object>
        パラメータ:
        key - 関連付けられた値が返される鍵
        defaultValue - キーのデフォルト・マッピング
        戻り値:
        指定されたキーがマップされている値。このマップにそのキーのマッピングが含まれていない場合はdefaultValue
      • forEach

        public void forEach​(BiConsumer<? super Object,? super Object> action)
        インタフェースからコピーされた説明: Map
        このマップのすべてのエントリの処理が完了するかアクションから例外がスローされるまで、各エントリに対して指定されたアクションを実行します。 実装クラスで指定されない場合は、エントリ・セットの反復の順序でアクションが実行されます(反復順序が指定されている場合)。 アクションによってスローされた例外は、呼出し側に中継されます。
        定義:
        forEach、インタフェース: Map<Object,Object>
        オーバーライド:
        forEach、クラス: Hashtable<Object,Object>
        パラメータ:
        action - 各エントリに対して実行されるアクション
      • replaceAll

        public void replaceAll​(BiFunction<? super Object,? super Object,?> function)
        インタフェースからコピーされた説明: Map
        すべてのエントリが処理されるか、または関数が例外をスローするまで、各エントリの値を、そのエントリで指定された関数を呼び出した結果で置換します。 関数によってスローされた例外は、呼出し側に中継されます。
        定義:
        replaceAll、インタフェース: Map<Object,Object>
        オーバーライド:
        replaceAll、クラス: Hashtable<Object,Object>
        パラメータ:
        function - 各エントリに適用する関数
      • putIfAbsent

        public Object putIfAbsent​(Object key,
                                  Object value)
        インタフェースからコピーされた説明: Map
        指定されたキーがまだ値に関連付けられていない(または、nullにマップされている)場合は、それを指定された値に関連付けてnullを返します。それ以外の場合は、現在の値を返します。
        定義:
        putIfAbsent、インタフェース: Map<Object,Object>
        オーバーライド:
        putIfAbsent、クラス: Hashtable<Object,Object>
        パラメータ:
        key - 指定された値が関連付けられるキー
        value - 指定された鍵に関連付けられる値
        戻り値:
        指定されたキーに関連付けられた以前の値。キーのマッピングがなかった場合はnull (また、実装がnull値をサポートしている場合、戻り値nullは、以前にマップでキーとnullが関連付けられていたことを示す場合もある。)
      • remove

        public boolean remove​(Object key,
                              Object value)
        インタフェースからコピーされた説明: Map
        指定された値に指定されたキーが現在マッピングされている場合にのみ、そのキーのエントリを削除します。
        定義:
        remove、インタフェース: Map<Object,Object>
        オーバーライド:
        remove、クラス: Hashtable<Object,Object>
        パラメータ:
        key - 指定された値が関連付けられるキー
        value - 指定されたキーに関連付けられていると予想される値
        戻り値:
        値が削除された場合はtrue
      • replace

        public Object replace​(Object key,
                              Object value)
        インタフェースからコピーされた説明: Map
        指定されたキーがなんらかの値に現在マッピングされている場合にのみ、そのキーのエントリを置換します。
        定義:
        replace、インタフェース: Map<Object,Object>
        オーバーライド:
        replace、クラス: Hashtable<Object,Object>
        パラメータ:
        key - 指定された値が関連付けられるキー
        value - 指定された鍵に関連付けられる値
        戻り値:
        指定されたキーに関連付けられた以前の値。キーのマッピングがなかった場合はnull (また、実装がnull値をサポートしている場合、戻り値nullは、以前にマップでキーとnullが関連付けられていたことを示す場合もある。)
      • computeIfAbsent

        public Object computeIfAbsent​(Object key,
                                      Function<? super Object,?> mappingFunction)
        クラスからコピーされた説明: Hashtable
        指定されたキーがまだ値に関連付けられていない(またはnullにマップされている)場合、指定されたマッピング関数を使用してその値の計算を試行し、nullでない場合はそれをこのマップに入力します。

        マッピング関数がnullを返した場合、マッピングは記録されません。 マッピング関数自体が(unchecked)例外をスローすると、例外は再スローされ、マッピングは記録されません。 もっとも一般的な用途は、次のように初期のマップされた値またはメモ化された結果として機能する新しいオブジェクトを構築することです。

         
         map.computeIfAbsent(key, k -> new Value(f(k)));
         

        または、1つのキーで複数の値をサポートする複数値マップMap<K,Collection<V>>を実装することです。

         
         map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);
         

        マッピング関数は、計算中にこのマップを変更すべきではありません。

        このメソッドは、ベスト・エフォート・ベースで、マッピング関数が計算中にこのマップを変更した場合にConcurrentModificationExceptionをスローします。

        定義:
        computeIfAbsent、インタフェース: Map<Object,Object>
        オーバーライド:
        computeIfAbsent、クラス: Hashtable<Object,Object>
        パラメータ:
        key - 指定された値が関連付けられるキー
        mappingFunction - 値をコンピュートするマッピング関数
        戻り値:
        指定されたキーに関連付けられている現在の(既存の、または計算された)値。計算された値がnullである場合はnull
      • computeIfPresent

        public Object computeIfPresent​(Object key,
                                       BiFunction<? super Object,? super Object,?> remappingFunction)
        クラスからコピーされた説明: Hashtable
        指定されたキーの値が存在していてnull以外の場合、キーと現在マップされている値から新しいマッピングの計算を試みます。

        リマッピング関数がnullを返した場合、マッピングは削除されます。 再マップ関数自体が(unchecked)例外をスローすると、例外が再スローされ、現在のマッピングは変更されません。

        再マップ関数は、計算中にこのマップを変更すべきではありません。

        このメソッドは、リマップ関数が計算中にこのマップを変更した場合、ベスト・エフォート・ベースでConcurrentModificationExceptionをスローします。

        定義:
        computeIfPresent、インタフェース: Map<Object,Object>
        オーバーライド:
        computeIfPresent、クラス: Hashtable<Object,Object>
        パラメータ:
        key - 指定された値が関連付けられるキー
        remappingFunction - 値をコンピュートするための再マップ関数
        戻り値:
        指定されたキーに関連付けられる新しい値。存在しない場合はnull
      • compute

        public Object compute​(Object key,
                              BiFunction<? super Object,? super Object,?> remappingFunction)
        クラスからコピーされた説明: Hashtable
        指定されたキーと現在マップされている値に対するマッピングの計算を試みます(現在のマッピングが存在しない場合はnull)。 たとえば、次のように、値のマッピングにString msgを作成または追加します。
         
         map.compute(key, (k, v) -> (v == null) ? msg : v.concat(msg))
        (このような目的で使用するmerge()メソッドは、多くの場合、より単純です。)

        再マッピング関数がnullを返した場合、マッピングは削除されます。(最初に欠席した場合は不在のままです)。 再マップ関数自体が(unchecked)例外をスローすると、例外が再スローされ、現在のマッピングは変更されません。

        再マップ関数は、計算中にこのマップを変更すべきではありません。

        このメソッドは、リマップ関数が計算中にこのマップを変更した場合、ベスト・エフォート・ベースでConcurrentModificationExceptionをスローします。

        定義:
        compute、インタフェース: Map<Object,Object>
        オーバーライド:
        compute、クラス: Hashtable<Object,Object>
        パラメータ:
        key - 指定された値が関連付けられるキー
        remappingFunction - 値をコンピュートするための再マップ関数
        戻り値:
        指定されたキーに関連付けられる新しい値。存在しない場合はnull
      • merge

        public Object merge​(Object key,
                            Object value,
                            BiFunction<? super Object,? super Object,?> remappingFunction)
        クラスからコピーされた説明: Hashtable
        指定されたキーがまだ値と関連付けられていないかnullと関連付けられている場合、指定されたnull以外の値に関連付けます。 それ以外の場合は、指定された再マッピング関数の結果で関連する値を置換し、結果がnullの場合は削除します。 このメソッドは、1つのキーに対する複数のマップされた値を結合するときに使用できます。 たとえば、次のように、値のマッピングにString msgを作成または追加します。
         
         map.merge(key, msg, String::concat)
         

        リマッピング関数がnullを返した場合、マッピングは削除されます。 再マップ関数自体が(unchecked)例外をスローすると、例外が再スローされ、現在のマッピングは変更されません。

        再マップ関数は、計算中にこのマップを変更すべきではありません。

        このメソッドは、リマップ関数が計算中にこのマップを変更した場合、ベスト・エフォート・ベースでConcurrentModificationExceptionをスローします。

        定義:
        merge、インタフェース: Map<Object,Object>
        オーバーライド:
        merge、クラス: Hashtable<Object,Object>
        パラメータ:
        key - 結果値が関連付けられるキー
        value - キーに関連付けられた既存の値にマージされるnull以外の値。既存の値がない場合、またはキーにnull値が関連付けられている場合は、キーに関連付けられるnull以外の値
        remappingFunction - 存在する場合に値を再計算するための再マッピング関数
        戻り値:
        指定されたキーに関連付けられた新しい値。キーに値が関連付けられなかった場合はnull
      • rehash

        protected void rehash​()
        クラスからコピーされた説明: Hashtable
        ハッシュ表の容量を増やし、それを内部的に再編成して、エントリを調整してアクセスをより効率的にします。 ハッシュ表にあるキーの数がハッシュ表の容量と負荷係数を超えると、このメソッドが自動的に呼び出されます。
        オーバーライド:
        クラスHashtable<Object,Object>rehash
      • clone

        public Object clone​()
        クラスからコピーされた説明: Hashtable
        ハッシュ表のコピーを作成します。 ハッシュ表の構造自体はすべてコピーされますが、キーおよび値は複製されません。 これは、比較的負担の大きい操作です。
        オーバーライド:
        クラスHashtable<Object,Object>clone
        戻り値:
        ハッシュ表の複製
        関連項目:
        Cloneable