モジュール 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オブジェクトを共有できます。

APIのノート:
Propertiesクラスは、そのスーパークラスHashtableから負荷係数の概念を継承しません。
導入されたバージョン:
1.0
関連項目:
  • フィールドのサマリー

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

    コンストラクタ
    コンストラクタ
    説明
    デフォルト値を持たない空のプロパティ・リストを作成します。
    Properties(int initialCapacity)
    デフォルト値を持たず、動的にサイズを変更する必要なしに、指定された数の要素に対応する初期サイズの空のプロパティ・リストを作成します。
    指定されたデフォルト値を持つ空のプロパティ・リストを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    指定されたキーを持つプロパティを、プロパティ・リストから探します。
    getProperty(String key, String defaultValue)
    指定されたキーを持つプロパティを、プロパティ・リストから探します。
    void
    指定された出力ストリームに、プロパティ・リストを出力します。
    void
    指定された出力ストリームに、プロパティ・リストを出力します。
    void
    load(InputStream inStream)
    入力バイト・ストリームからキーと要素が対になったプロパティ・リストを読み込みます。
    void
    load(Reader reader)
    プロパティ・リスト(キーと要素のペア)を入力文字ストリームから単純な行指向形式で読み込みます。
    void
    指定された入力ストリーム上のXMLドキュメントにより表されるすべてのプロパティを、このプロパティ表にロードします。
    メイン・プロパティ・リストに同じ名前のキーが見つからない場合は、デフォルトのプロパティ・リストにある個別のキーを含む、このプロパティ・リストにあるすべてのキーの列挙を返します。
    void
    save(OutputStream out, String comments)
    非推奨。
    このメソッドは、プロパティ・リストの保存中に入出力エラーが発生しても、IOExceptionをスローしません。
    setProperty(String key, String value)
    Hashtableのメソッドputを呼び出します。
    void
    store(OutputStream out, String comments)
    このProperties表内のプロパティ・リスト(キーと要素のペア)を、load(InputStream)メソッドを使用してProperties表にロードするのに適した形式で出力ストリームに書き込みます。
    void
    store(Writer writer, String comments)
    このProperties表内のプロパティ・リスト(キーと要素のペア)を、load(Reader)メソッドを使用するのに適した形式で出力文字ストリームに書き込みます。
    void
    この表に含まれるすべてのプロパティを表すXMLドキュメントを発行します。
    void
    storeToXML(OutputStream os, String comment, String encoding)
    この表に含まれるすべてのプロパティを表すXMLドキュメントを、指定されたエンコーディングを使用して発行します。
    void
    storeToXML(OutputStream os, String comment, Charset charset)
    この表に含まれるすべてのプロパティを表すXMLドキュメントを、指定されたエンコーディングを使用して発行します。
    このプロパティ・リストからキーと対応する値が文字列である変更不可能なキー・セットを返します。同じ名前のキーがメイン・プロパティ・リストから見つからない場合は、デフォルト・プロパティ・リスト内の別のキーも含めて返します。

    クラス java.lang.Objectで宣言されたメソッド

    finalize, getClass, notify, notifyAll, wait, wait, wait

    インタフェース java.util.Mapで宣言されたメソッド

    forEach, getOrDefault, putIfAbsent, remove, replace, replace, replaceAll
  • フィールド詳細

    • defaults

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

    • Properties

      public Properties()
      デフォルト値を持たない空のプロパティ・リストを作成します。
      実装上のノート:
      このコンストラクタで作成されたPropertiesオブジェクトの初期容量は指定されていません。
    • Properties

      public Properties(int initialCapacity)
      デフォルト値を持たず、動的にサイズを変更する必要なしに、指定された数の要素に対応する初期サイズの空のプロパティ・リストを作成します。
      パラメータ:
      initialCapacity - Propertiesは、この多くの要素に対応するためのサイズになります
      例外:
      IllegalArgumentException - 初期容量が0よりも小さい場合。
    • Properties

      public Properties(Properties defaults)
      指定されたデフォルト値を持つ空のプロパティ・リストを作成します。
      実装上のノート:
      このコンストラクタで作成されたPropertiesオブジェクトの初期容量は指定されていません。
      パラメータ:
      defaults - デフォルト値。
  • メソッドの詳細

    • setProperty

      public Object setProperty(String key, String value)
      Hashtableのメソッドputを呼び出します。 getPropertyメソッドと対になります。 プロパティのキーおよび値に文字列を使うことを義務付けます。 返される値はputへのHashtable呼出しの結果です。
      パラメータ:
      key - プロパティ・リストに配置されるキー。
      value - keyに対応する値。
      戻り値:
      このプロパティ・リスト内での指定されたキーの以前の値。このキーが値を持っていなかった場合はnull
      導入されたバージョン:
      1.2
      関連項目:
    • 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)、またはコメント内の行フィード (\r\n)の直後にキャリッジ・リターンは、line separatorに置き換えられ、コメント内の次の文字が文字#または文字!でない場合は、その行セパレータのあとにASCII #が書き込まれます。

      java.properties.dateがコマンドラインで設定され、空でない(String.isEmptyによって決定されます)の場合、コメント行は次のように書き込まれます。 まず、#文字に続いて、プロパティの内容と行セパレータが書き込まれます。 システム・プロパティの値の行の終端文字はすべて、コメント引数に関して上記のように扱われます。 システム・プロパティが設定されていないか空の場合、コメント行は次のように書き込まれます。 まず、#文字が記述され、その後にDate.toStringメソッドが続くかのように書式化された現在の日時と行セパレータが続きます。

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

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

      実装要件:
      キーおよび要素は、entrySet()内のキーの自然ソート順で記述されます。ただし、entrySet()がサブクラスによってオーバーライドされ、super.entrySet()とは異なる値を返します。
      パラメータ:
      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

      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
      関連項目:
    • 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ドキュメントの書込みをサポートする必要があります。 実装は追加のエンコーディングをサポートできます。

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

      このメソッドは、storeToXML(OutputStream os, String comment, Charset charset)と同じように動作しますが、「文字セットを参照」は指定されたエンコーディング名を使用します。

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

      public void storeToXML(OutputStream os, String comment, Charset charset) 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
      charset - 文字セット
      例外:
      IOException - 指定された出力ストリームへの書込み時にIOExceptionが発生した場合。
      NullPointerException - osまたはcharsetnullの場合。
      ClassCastException - このPropertiesオブジェクトに、Stringsではないキーまたは値が含まれている場合。
      導入されたバージョン:
      10
      関連項目:
    • getProperty

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

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

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

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

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

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

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

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