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

クラスPreferences

java.lang.Object
java.util.prefs.Preferences
直系の既知のサブクラス:
AbstractPreferences

public abstract class Preferences extends Object
設定データの階層的な集合の中の1つのノードです。 このクラスを使用して、アプリケーションからユーザーおよびシステムの設定データと構成データを格納および取得できます。 このデータは、実装ごとに異なるバッキング・ストアに永続的に保存されます。 たとえば、フラット・ファイル、OS固有のレジストリ、ディレクトリ・サーバー、SQLデータベースなどのバッキング・ストアに格納されます。 このクラスを使用するときに、バッキング・ストアの詳細を把握している必要はありません。

設定ノードは2つの個別のツリーで構成されます。一方はユーザー設定用、もう一方はシステム設定用です。 それぞれのユーザーは個々のユーザー設定ツリーを持ち、そのシステムのすべてのユーザーはシステム設計ツリーを持ちます。 ユーザー設定ツリーとシステム設定ツリーの定義は、実装ごとに異なります。 ユーザー設定ツリーには、フォント選択、カラー選択、特定のアプリケーションに設定したウィンドウ位置やサイズなどが格納されます。 システム設定ツリーには、アプリケーションのインストール構成データなどが格納されます。

設定ツリー内のノードには、階層ファイル・システムのディレクトリと同じ方法で名前が付けられます。 設定ツリーの各ノードには、ノード名 (一意である必要はない)、一意の絶対パス名、および各上位ノード(そのノード自体を含む)を起点とした相対パス名が割り当てられます。

ルート・ノードのノード名は、空の文字列("")です。 ほかのノードの名前は、作成時に任意に指定できます。 ノード名には任意の文字を使用できますが、空の文字列は指定できず、スラッシュ文字('/')は使用できません。

ルート・ノードの絶対パス名は"/"です。 ルート・ノードの子には、"/" + <node name>の絶対パス名があります。 他のすべてのノードの絶対パス名は、<親の絶対パス名> + "/" + <node name>です。 絶対パス名は、常にスラッシュ文字から始まります。

ノードnの相対パス名は、上位ノードaを起点とした場合、nの絶対パス名を作成するときにaの絶対パス名に追加される文字列になります。先頭にスラッシュ文字がある場合は削除します。 次の点に注意してください。

  • 相対パス名はスラッシュ文字で始まらない。
  • そのノード自体を起点とした相対パス名は空の文字列である。
  • 親を起点とした各ノードの相対パス名は、そのノード名になる。ただし、ルート・ノードには親が存在しないため、ルート・ノードは除く。
  • ルートを起点とした各ノードの相対パス名は、その絶対パス名から先頭のスラッシュ文字を削除したものになる。

次の点にも注意してください。

  • パス名には連続する複数のスラッシュ文字を含めることはできない。
  • ルートの絶対パス名を除き、パス名はスラッシュ文字で終わらない。
  • 上記の2つのルールに準拠している文字列はすべて有効なパス名である。

設定データを変更するメソッドはすべて、非同期に実行できます。つまり、実行後はただちに復帰し、変更は実装に依存した遅延が経過してから永続バッキング・ストアに送られます。 flushメソッドを使用すると、バッキング・ストアに対する更新を同期的に強制できます。 Java Virtual Machineを正常に終了しても、保留中の更新は失われません -- 保留中の更新が永続的になるようにするために、終了時に明示的なflush呼び出しは必要ありません。

Preferencesオブジェクトからプリファレンスを読み取るすべてのメソッドでは、起動側がデフォルト値を指定する必要があります。 読み込む前に値が設定されていなかった場合またはバッキング・ストアが利用できない場合は、そのデフォルト値が返されます。 これは、バッキング・ストアが利用できなくなった場合でも、アプリケーションが動作できるようにするためです(ただし、機能がわずかに低下する)。 flushなどのいくつかのメソッドには、バッキング・ストアが使用できない場合に動作できないセマンティクスがあります。 通常のアプリケーションでは、これらのメソッドを呼び出す必要がありません。それらは、BackingStoreExceptionをスローするように宣言していることで識別できます。

このクラスのメソッドは、1つのJVMの複数のスレッドから並行して呼び出すことができます。このとき、外部的に同期化する必要はありません。実行結果は、逐次実行した場合と等価です。 このクラスが複数のJVMによって同時に使用され、設定データが同じバッキング・ストアに格納された場合、データ・ストアは破壊しませんが、設定データの一貫性は保証されません。

このクラスには、エクスポート/インポート機能があり、設定をXMLドキュメントに「エクスポート」したり、設定が記述されたXMLドキュメントをシステムに「インポート」することができます。 この機能は、設定ツリーのすべてまたは一部をバックアップし、そのバックアップを復元するときに使用します。

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


 <!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
 
設定をエクスポート/インポートするときに、システムURI (http://java.sun.com/dtd/preferences.dtd)にはアクセスしません。システムURIは、DTDを一意に識別する文字列として使用されます。その内容は次のとおりです。

    <?xml version="1.0" encoding="UTF-8"?>

    <!-- DTD for a Preferences tree. -->

    <!-- The preferences element is at the root of an XML document
         representing a Preferences tree. -->
    <!ELEMENT preferences (root)>

    <!-- The preferences element contains an optional version attribute,
          which specifies version of DTD. -->
    <!ATTLIST preferences EXTERNAL_XML_VERSION CDATA "0.0" >

    <!-- The root element has a map representing the root's preferences
         (if any), and one node for each child of the root (if any). -->
    <!ELEMENT root (map, node*) >

    <!-- Additionally, the root contains a type attribute, which
         specifies whether it's the system or user root. -->
    <!ATTLIST root
              type (system|user) #REQUIRED >

    <!-- Each node has a map representing its preferences (if any),
         and one node for each child (if any). -->
    <!ELEMENT node (map, node*) >

    <!-- Additionally, each node has a name attribute -->
    <!ATTLIST node
              name CDATA #REQUIRED >

    <!-- A map represents the preferences stored at a node (if any). -->
    <!ELEMENT map (entry*) >

    <!-- An entry represents a single preference, which is simply
          a key-value pair. -->
    <!ELEMENT entry EMPTY >
    <!ATTLIST entry
              key   CDATA #REQUIRED
              value CDATA #REQUIRED >
 
すべてのPreferences実装には、PreferencesFactory実装が関連付けられている必要があります。 すべてのJava(TM) SE実装は、ルート・プリファレンス・ノードの生成に使用されるPreferencesFactory実装を指定するいくつかの方法を提供する必要があります。 これによって、管理者はデフォルトのpreferences実装を代替実装に置き換えることができます。

実装上のノート:
PreferencesFactory実装は、次のように配置されています:
  1. システム・プロパティjava.util.prefs.PreferencesFactoryが定義されている場合は、PreferencesFactoryインタフェースを実装するクラスの完全修飾名とみなされます。 その後、クラスがロードされ、インスタンスが作成されます。

  2. system class loaderで表示されるjarファイルにPreferencesFactory実装クラス・ファイルがインストールされており、そのjarファイルにリソース・ディレクトリMETA-INF/services内のjava.util.prefs.PreferencesFactoryという名前のprovider-configurationファイルが含まれている場合は、そのファイルに指定された最初のクラス名が取得されます。 このようなjarファイルが2つ以上指定された場合は、最初に検出されたファイルが使用されます。 その後、クラスがロードされ、インスタンスが作成されます。

  3. 最後に、前述のシステム・プロパティと拡張jarファイルのいずれも指定されていない場合、基礎となるプラットフォームのシステム全体のデフォルトのPreferencesFactory実装がロードされ、インスタンス化されます。

導入されたバージョン:
1.4
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final int
    キーとして使用できる文字列の最大長(80文字)です。
    static final int
    ノード名の最大長(80文字)です。
    static final int
    値として使用できる文字列の最大長(8192文字)です。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    唯一のコンストラクタです。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract String
    この設定ノードの絶対パス名を返します。
    abstract void
    指定されたリスナーがこのノードのノード変更イベントを受信するように登録します。
    abstract void
    指定されたリスナーがこの設定ノードに対する設定変更イベントを受信するように登録します。
    abstract String[]
    この設定ノードの子の名前(このノードを起点とした相対名)を返します。
    abstract void
    この設定ノード内の設定(キーと値のペアの関連付け)をすべて削除します。
    abstract void
    このノード(その下位ノードは含まない)に含まれているすべての設定を表すXMLドキュメントを、指定された出力ストリームに発行します。
    abstract void
    このノードとそのすべての下位ノードに含まれるすべての設定を表すXMLドキュメントを発行します。
    abstract void
    この設定ノードとその下位ノードの内容に対するすべての変更を、永続ストアに強制的に格納します。
    abstract String
    get(String key, String def)
    この設定ノード内の指定されたキーに関連付けられている値を返します。
    abstract boolean
    getBoolean(String key, boolean def)
    この設定ノード内の指定されたキーに関連付けられている文字列が表すboolean値を返します。
    abstract byte[]
    getByteArray(String key, byte[] def)
    この設定ノード内の指定されたキーに関連付けられている文字列が表すbyte配列値を返します。
    abstract double
    getDouble(String key, double def)
    この設定ノード内の指定されたキーに関連付けられている文字列が表すdouble値を返します。
    abstract float
    getFloat(String key, float def)
    この設定ノード内の指定されたキーに関連付けられている文字列が表すfloat値を返します。
    abstract int
    getInt(String key, int def)
    この設定ノード内の指定されたキーに関連付けられている文字列が表すint値を返します。
    abstract long
    getLong(String key, long def)
    この設定ノード内の指定されたキーに関連付けられている文字列が表すlong値を返します。
    static void
    XMLドキュメントによって表されるすべての設定を、指定された入力ストリームからインポートします。
    abstract boolean
    このプリファレンス・ノードがユーザー・プリファレンス・ツリーにある場合はtrueを返し、システム・プリファレンス・ツリーにある場合はfalseを返します。
    abstract String[]
    この設定ノード内に関連付けられている値を持つキーをすべて返します。
    abstract String
    この設定ノードの名前(その親を起点とした相対名)を返します。
    abstract Preferences
    node(String pathName)
    このノードと同じツリーにある名前付き設定ノードを返します。このノードとその上位ノードが存在しない場合は、それらをすべて作成します。
    abstract boolean
    nodeExists(String pathName)
    名前付き設定ノードがこのノードと同じツリーに存在する場合は、trueを返します。
    abstract Preferences
    このプリファレンス・ノードの親を返します。これがルートの場合はnullを返します。
    abstract void
    put(String key, String value)
    この設定ノードで指定されたキーに、指定された値を関連付けます。
    abstract void
    putBoolean(String key, boolean value)
    この設定ノード内の指定されたキーに、指定されたboolean値を表す文字列を関連付けます。
    abstract void
    putByteArray(String key, byte[] value)
    この設定ノード内の指定されたキーに、指定されたbyte配列を表す文字列を関連付けます。
    abstract void
    putDouble(String key, double value)
    この設定ノード内の指定されたキーに、指定されたdouble値を表す文字列を関連付けます。
    abstract void
    putFloat(String key, float value)
    この設定ノード内の指定されたキーに、指定されたfloat値を表す文字列を関連付けます。
    abstract void
    putInt(String key, int value)
    この設定ノード内の指定されたキーに、指定されたint値を表す文字列を関連付けます。
    abstract void
    putLong(String key, long value)
    この設定ノード内の指定されたキーに、指定されたlong値を表す文字列を関連付けます。
    abstract void
    この設定ノード内の指定されたキーに関連付けられている値がある場合は、それを削除します。
    abstract void
    この設定ノードとその下位ノードをすべて削除し、削除したノードに含まれている設定をすべて無効にします。
    abstract void
    指定されたNodeChangeListenerを削除して、変更イベントを受信しないようにします。
    abstract void
    指定された設定変更リスナーを削除して、設定変更イベントの受信を停止します。
    abstract void
    このプリファレンス・ノードとその子孫からの今後の読取りに、sync起動の前に永続ストア(任意のVMから)にコミットされた変更が反映されるようにします。
    システム設定ツリーから設定ノードを返します。このシステム設定ツリーは、規則に従って、指定されたクラスのパッケージに関連付けられています。
    システムのルート設定ノードを返します。
    abstract String
    式で計算された場合と同様に、このプリファレンス・ノードの文字列表現を返します : (this.isUserNode() ? "User" : "System") + " Preference Node: " + this.absolutePath()
    呼出し側ユーザーの設定ツリーから設定ノードを返します。このユーザー設定ツリーは、規則に従って、指定されたクラスのパッケージに関連付けられています。
    呼出し側ユーザーのルート設定ノードを返します。

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

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • フィールド詳細

    • MAX_KEY_LENGTH

      public static final int MAX_KEY_LENGTH
      キーとして使用できる文字列の最大長(80文字)です。
      関連項目:
    • MAX_VALUE_LENGTH

      public static final int MAX_VALUE_LENGTH
      値として使用できる文字列の最大長(8192文字)です。
      関連項目:
    • MAX_NAME_LENGTH

      public static final int MAX_NAME_LENGTH
      ノード名の最大長(80文字)です。
      関連項目:
  • コンストラクタの詳細

    • Preferences

      protected Preferences()
      唯一のコンストラクタです。 (サブクラスのコンストラクタによる呼出し用で、通常は暗黙的に呼び出されます。)
  • メソッドの詳細

    • userNodeForPackage

      public static Preferences userNodeForPackage(Class<?> c)
      呼出し側ユーザーの設定ツリーから設定ノードを返します。このユーザー設定ツリーは、規則に従って、指定されたクラスのパッケージに関連付けられています。 規則は次のとおりです: ノードの絶対パス名は、スラッシュ('/')が前に付いた完全修飾パッケージ名で、各ピリオド('.')がスラッシュに置き換えられます。 たとえば、クラスcom.acme.widget.Fooに関連付けられたノードの絶対パス名は/com/acme/widgetです。

      この規則は、関連付けられたプリファレンス・ノードが<unnamed>である名前のないパッケージには適用されません。 このノードは、長期間の使用には適していませんが、パッケージにまだ属していない開発初期段階のプログラムや使い捨てのプログラムで使用できます。 重要なデータはこのノードに格納しないでください。それを使用するすべてのプログラムによって共有されているためです。

      パッケージに関連するプリファレンスにアクセスすることを希望するクラスFooは、次のようにプリファレンス・ノードを取得できます:

          static Preferences prefs = Preferences.userNodeForPackage(Foo.class);
       
      このイディオムを使えば、文字列を使って設定ノードを記述する必要がなくなるため、実行時にエラーが発生する可能性が減ります。 (クラス名の綴りを間違った場合は通常、コンパイル時にエラーが発生する。)

      このメソッドを呼び出したときに、返されるノードとその上位ノードが存在しなかった場合は、それらのノードが作成されます。 返されたノードがこのコールの前に存在しなかった場合、このノードおよびこのコールによって作成された祖先は、返されたノード(またはその祖先または子孫の1つ)でflushメソッドがコールされるまで永続的になることは保証されません。

      パラメータ:
      c - ユーザー設定ノードを必要とするパッケージのクラス。
      戻り値:
      cがメンバーであるパッケージに関連付けられているユーザー・プリファレンス・ノード。
      例外:
      NullPointerException - cnullの場合。
      SecurityException - セキュリティ・マネージャが存在し、RuntimePermission("preferences")が拒否された場合。
      関連項目:
    • systemNodeForPackage

      public static Preferences systemNodeForPackage(Class<?> c)
      システム設定ツリーから設定ノードを返します。このシステム設定ツリーは、規則に従って、指定されたクラスのパッケージに関連付けられています。 規則は次のとおりです: ノードの絶対パス名は、スラッシュ('/')が前に付いた完全修飾パッケージ名で、各ピリオド('.')がスラッシュに置き換えられます。 たとえば、クラスcom.acme.widget.Fooに関連付けられたノードの絶対パス名は/com/acme/widgetです。

      この規則は、関連付けられたプリファレンス・ノードが<unnamed>である名前のないパッケージには適用されません。 このノードは、長期間の使用には適していませんが、パッケージにまだ属していない開発初期段階のプログラムや使い捨てのプログラムで使用できます。 重要なデータはこのノードに格納しないでください。それを使用するすべてのプログラムによって共有されているためです。

      パッケージに関連するプリファレンスにアクセスすることを希望するクラスFooは、次のようにプリファレンス・ノードを取得できます:

        static Preferences prefs = Preferences.systemNodeForPackage(Foo.class);
       
      このイディオムを使えば、文字列を使って設定ノードを記述する必要がなくなるため、実行時にエラーが発生する可能性が減ります。 (クラス名の綴りを間違った場合は通常、コンパイル時にエラーが発生する。)

      このメソッドを呼び出したときに、返されるノードとその上位ノードが存在しなかった場合は、それらのノードが作成されます。 返されたノードがこのコールの前に存在しなかった場合、このノードおよびこのコールによって作成された祖先は、返されたノード(またはその祖先または子孫の1つ)でflushメソッドがコールされるまで永続的になることは保証されません。

      パラメータ:
      c - システム設定ノードを必要とするパッケージのクラス。
      戻り値:
      cがメンバーであるパッケージに関連付けられたシステム・プリファレンス・ノード。
      例外:
      NullPointerException - cnullの場合。
      SecurityException - セキュリティ・マネージャが存在し、RuntimePermission("preferences")が拒否された場合。
      関連項目:
    • userRoot

      public static Preferences userRoot()
      呼出し側ユーザーのルート設定ノードを返します。
      戻り値:
      呼出し側ユーザーのルート設定ノード。
      例外:
      SecurityException - セキュリティ・マネージャが存在し、RuntimePermission("preferences")が拒否された場合。
      関連項目:
    • systemRoot

      public static Preferences systemRoot()
      システムのルート設定ノードを返します。
      戻り値:
      システムのルート設定ノード。
      例外:
      SecurityException - セキュリティ・マネージャが存在し、RuntimePermission("preferences")が拒否された場合。
      関連項目:
    • put

      public abstract void put(String key, String value)
      この設定ノードで指定されたキーに、指定された値を関連付けます。
      パラメータ:
      key - 指定の値が関連付けられるキー。
      value - 指定のキーに関連付けられる値。
      例外:
      NullPointerException - キーまたは値がnullの場合。
      IllegalArgumentException - key.length()MAX_KEY_LENGTHを超えた場合、またはvalue.lengthMAX_VALUE_LENGTHを超えた場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      IllegalArgumentException - キーまたは値にnull制御文字が含まれている場合、コード・ポイントU+0000。
    • get

      public abstract String get(String key, String def)
      この設定ノード内の指定されたキーに関連付けられている値を返します。 キーに関連付けられている値がない場合またはバッキング・ストアが利用できない場合は、指定されたデフォルトを返します。

      一部の実装は、デフォルト値をそのバッキング・ストアに格納します。 指定されたキーに関連付けられている値がない場合でも、格納済みデフォルトがある場合は、指定されたデフォルトに優先して格納済みデフォルトが返されます。

      パラメータ:
      key - 関連付けられている値が返されるキー。
      def - このプリファレンス・ノードにkeyに関連付けられた値がない場合に返される値。
      戻り値:
      keyに関連付けられた値、またはkeyに値が関連付けられていない場合はdef、またはバッキング・ストアにアクセスできません。
      例外:
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      NullPointerException - keynullである場合。 (defにはnull値を使用できます。)
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
    • remove

      public abstract void remove(String key)
      この設定ノード内の指定されたキーに関連付けられている値がある場合は、それを削除します。

      この実装で「格納デフォルト」がサポートされていて、指定された設定にそのようなデフォルトが存在する場合、格納されているデフォルトはこの呼び出しによって"公開"になります。これは、getの次の呼び出しによって返されるという意味です。

      パラメータ:
      key - マッピングが設定ノードから削除されるキー。
      例外:
      NullPointerException - keynullである場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
    • clear

      public abstract void clear() throws BackingStoreException
      この設定ノード内の設定(キーと値のペアの関連付け)をすべて削除します。 この呼出しは、このノードの下位ノードには適用されません。

      この実装で「格納デフォルト」がサポートされ、プリファレンス階層のこのノードにそのようなデフォルトが含まれている場合、格納されているデフォルトはこの呼び出しによって"公開"になります。これは、getへの呼び出しの後続によって返されるという意味です。

      例外:
      BackingStoreException - バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      関連項目:
    • putInt

      public abstract void putInt(String key, int value)
      この設定ノード内の指定されたキーに、指定されたint値を表す文字列を関連付けます。 関連付けられる文字列は、int値がInteger.toString(int)に渡された場合に返される文字列です。 このメソッドは、getInt(java.lang.String, int)と組み合わせて使用します。
      パラメータ:
      key - 文字列形式の値が関連付けられるキー。
      value - キーに関連付けられる文字列形式の値。
      例外:
      NullPointerException - keynullである場合。
      IllegalArgumentException - key.length()MAX_KEY_LENGTHを超える場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
      関連項目:
    • getInt

      public abstract int getInt(String key, int def)
      この設定ノード内の指定されたキーに関連付けられている文字列が表すint値を返します。 この文字列は、Integer.parseInt(String)によって整数に変換されます。 キーに関連付けられた値がない場合、バッキング・ストアにアクセスできない場合、または関連付けられた値が渡された場合、Integer.parseInt(String)NumberFormatExceptionをスローする場合、指定されたデフォルトを返します。 このメソッドは、putInt(java.lang.String, int)と組み合わせて使用します。

      実装が「格納デフォルト」をサポートし、そのようなデフォルトが存在し、アクセス可能で、Integer.parseIntでintに変換できる場合、このintは指定されたデフォルトよりも優先して返されます。

      パラメータ:
      key - 関連付けられている値がintとして返されるキー。
      def - このプリファレンス・ノードにkeyに関連付けられた値がないか、関連付けられた値をintとして解釈できない場合、またはバッキング・ストアにアクセスできない場合に返される値。
      戻り値:
      このプリファレンス・ノードのkeyに関連付けられた文字列で表されるint値、または関連する値が存在しないか、intとして解釈できない場合にはdef
      例外:
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      NullPointerException - keynullである場合。
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
      関連項目:
    • putLong

      public abstract void putLong(String key, long value)
      この設定ノード内の指定されたキーに、指定されたlong値を表す文字列を関連付けます。 関連付けられる文字列は、long値がLong.toString(long)に渡された場合に返される文字列です。 このメソッドは、getLong(java.lang.String, long)と組み合わせて使用します。
      パラメータ:
      key - 文字列形式の値が関連付けられるキー。
      value - キーに関連付けられる文字列形式の値。
      例外:
      NullPointerException - keynullである場合。
      IllegalArgumentException - key.length()MAX_KEY_LENGTHを超える場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
      関連項目:
    • getLong

      public abstract long getLong(String key, long def)
      この設定ノード内の指定されたキーに関連付けられている文字列が表すlong値を返します。 この文字列は、Long.parseLong(String)によってlongに変換されます。 キーに関連付けられた値がない場合、バッキング・ストアにアクセスできない場合、または関連付けられた値が渡された場合、Long.parseLong(String)NumberFormatExceptionをスローする場合、指定されたデフォルトを返します。 このメソッドは、putLong(java.lang.String, long)と組み合わせて使用します。

      実装が「格納デフォルト」をサポートしており、そのようなデフォルトが存在し、アクセス可能であり、Long.parseLongでlongに変換できる場合、このlongは指定されたデフォルトよりも優先して返されます。

      パラメータ:
      key - 関連付けられている値がlongとして返されるキー。
      def - このプリファレンス・ノードにkeyに関連付けられた値がないか、関連付けられた値をlongとして解釈できない場合、またはバッキング・ストアにアクセスできない場合に返される値。
      戻り値:
      このプリファレンス・ノードのkeyに関連付けられた文字列で表されるlong値、または関連付けられた値が存在しないか、longとして解釈できない場合はdef
      例外:
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      NullPointerException - keynullである場合。
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
      関連項目:
    • putBoolean

      public abstract void putBoolean(String key, boolean value)
      この設定ノード内の指定されたキーに、指定されたboolean値を表す文字列を関連付けます。 関連する文字列は、値がtrueの場合は"true"、falseの場合は"false"です。 このメソッドは、getBoolean(java.lang.String, boolean)と組み合わせて使用します。
      パラメータ:
      key - 文字列形式の値が関連付けられるキー。
      value - キーに関連付けられる文字列形式の値。
      例外:
      NullPointerException - keynullである場合。
      IllegalArgumentException - key.length()MAX_KEY_LENGTHを超える場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
      関連項目:
    • getBoolean

      public abstract boolean getBoolean(String key, boolean def)
      この設定ノード内の指定されたキーに関連付けられている文字列が表すboolean値を返します。 有効な文字列は、trueを表す"true"およびfalseを表す"false"です。 大文字と小文字は区別されないため、たとえば、"TRUE""False"も有効です。 このメソッドは、putBoolean(java.lang.String, boolean)と組み合わせて使用します。

      キーに関連付けられた値がない場合、バッキング・ストアにアクセスできない場合、または関連する値が"true"または"false"以外の場合、大/小文字を無視して、指定されたデフォルトを返します。

      実装が「格納デフォルト」をサポートし、そのようなデフォルトが存在し、アクセス可能な場合、格納されているデフォルトが"true"または"false"以外のものである場合を除き、指定されたデフォルトよりも優先して使用されます。この場合、指定されたデフォルトが使用されます。

      パラメータ:
      key - 関連付けられている値がbooleanとして返されるキー。
      def - このプリファレンス・ノードにkeyに関連付けられた値がないか、関連付けられた値をブールとして解釈できない場合、またはバッキング・ストアにアクセスできない場合に返される値。
      戻り値:
      このプリファレンス・ノードのkeyに関連付けられた文字列で表されるブール値、または関連付けられた値が存在しないか、ブールとして解釈できない場合はdef
      例外:
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      NullPointerException - keynullである場合。
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
      関連項目:
    • putFloat

      public abstract void putFloat(String key, float value)
      この設定ノード内の指定されたキーに、指定されたfloat値を表す文字列を関連付けます。 関連付けられる文字列は、float値がFloat.toString(float)に渡された場合に返される文字列です。 このメソッドは、getFloat(java.lang.String, float)と組み合わせて使用します。
      パラメータ:
      key - 文字列形式の値が関連付けられるキー。
      value - キーに関連付けられる文字列形式の値。
      例外:
      NullPointerException - keynullである場合。
      IllegalArgumentException - key.length()MAX_KEY_LENGTHを超える場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
      関連項目:
    • getFloat

      public abstract float getFloat(String key, float def)
      この設定ノード内の指定されたキーに関連付けられている文字列が表すfloat値を返します。 この文字列は、Float.parseFloat(String)によって整数に変換されます。 キーに関連付けられた値がない場合、バッキング・ストアにアクセスできない場合、または関連付けられた値が渡された場合、Float.parseFloat(String)NumberFormatExceptionをスローする場合、指定されたデフォルトを返します。 このメソッドは、putFloat(java.lang.String, float)と組み合わせて使用します。

      実装が「格納デフォルト」をサポートしており、そのようなデフォルトが存在し、アクセス可能であり、Float.parseFloatで浮動小数に変換できる場合、この浮動小数点は指定されたデフォルトよりも優先して返されます。

      パラメータ:
      key - 関連付けられている値がfloatとして返されるキー。
      def - このプリファレンス・ノードにkeyに関連付けられた値がないか、関連付けられた値を浮動小数点として解釈できない場合、またはバッキング・ストアにアクセスできない場合に返される値。
      戻り値:
      このプリファレンス・ノードのkeyに関連付けられた文字列で表される浮動小数点値。関連付けられた値が存在しないか、または浮動小数点として解釈できない場合は、def
      例外:
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      NullPointerException - keynullである場合。
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
      関連項目:
    • putDouble

      public abstract void putDouble(String key, double value)
      この設定ノード内の指定されたキーに、指定されたdouble値を表す文字列を関連付けます。 関連付けられる文字列は、double値がDouble.toString(double)に渡された場合に返される文字列です。 このメソッドは、getDouble(java.lang.String, double)と組み合わせて使用します。
      パラメータ:
      key - 文字列形式の値が関連付けられるキー。
      value - キーに関連付けられる文字列形式の値。
      例外:
      NullPointerException - keynullである場合。
      IllegalArgumentException - key.length()MAX_KEY_LENGTHを超える場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
      関連項目:
    • getDouble

      public abstract double getDouble(String key, double def)
      この設定ノード内の指定されたキーに関連付けられている文字列が表すdouble値を返します。 この文字列は、Double.parseDouble(String)によって整数に変換されます。 キーに関連付けられた値がない場合、バッキング・ストアにアクセスできない場合、または関連付けられた値が渡された場合、Double.parseDouble(String)NumberFormatExceptionをスローする場合、指定されたデフォルトを返します。 このメソッドは、putDouble(java.lang.String, double)と組み合わせて使用します。

      実装が「格納デフォルト」をサポートしており、そのようなデフォルトが存在し、アクセス可能であり、Double.parseDoubleでdoubleに変換できる場合、このdoubleは指定されたデフォルトよりも優先して返されます。

      パラメータ:
      key - 関連付けられている値がdoubleとして返されるキー。
      def - このプリファレンス・ノードにkeyに関連付けられた値がないか、関連付けられた値をdoubleとして解釈できない場合、またはバッキング・ストアにアクセスできない場合に返される値。
      戻り値:
      このプリファレンス・ノードのkeyに関連付けられた文字列で表されるdouble値、または関連付けられた値が存在しないか、doubleとして解釈できない場合はdef
      例外:
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      NullPointerException - keynullである場合。
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
      関連項目:
    • putByteArray

      public abstract void putByteArray(String key, byte[] value)
      この設定ノード内の指定されたキーに、指定されたbyte配列を表す文字列を関連付けます。 関連付ける文字列は、Base64でエンコードされたバイト配列です。これについては、RFC 2045のセクション6.8に定義されていますが、小さな変更があり、この文字列はBase64 Alphabetの文字だけで構成され、改行文字が含まれません。 Base64でエンコードされた文字列の長さがMAX_VALUE_LENGTHを超えないように、バイト配列の最大長はMAX_VALUE_LENGTHの4分の3に制限されます。 このメソッドは、getByteArray(java.lang.String, byte[])と組み合わせて使用します。
      パラメータ:
      key - 文字列形式の値が関連付けられるキー。
      value - キーに関連付けられる文字列形式の値。
      例外:
      NullPointerException - キーまたは値がnullの場合。
      IllegalArgumentException - key.length()がMAX_KEY_LENGTHを超える場合、またはvalue.lengthがMAX_VALUE_LENGTH*3/4を超える場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
      関連項目:
    • getByteArray

      public abstract byte[] getByteArray(String key, byte[] def)
      この設定ノード内の指定されたキーに関連付けられている文字列が表すbyte配列値を返します。 有効な文字列は、Base64でエンコードされたバイナリデータです。これについては、RFC 2045のセクション6.8に定義されていますが、小さな変更があり、この文字列はBase64 Alphabetの文字だけで構成され、改行文字や不適切な文字は許可されません。 このメソッドは、putByteArray(java.lang.String, byte[])と組み合わせて使用します。

      キーに関連付けられる値がない場合、バッキング・ストアが利用できない場合、または関連付けられている値がBase64でエンコードされた有効なbyte配列(上の定義を参照)でない場合は、指定されたデフォルトを返します。

      この実装が格納済みデフォルトをサポートし、格納済みデフォルトが存在してアクセス可能であり、格納済みデフォルトがBase64でエンコードされた有効なbyte配列(上記の定義どおり)である場合は、指定されたデフォルトに優先して使用されます。そうでない場合は、指定されたデフォルトが使用されます。

      パラメータ:
      key - 関連付けられている値がbyte配列として返されるキー。
      def - このプリファレンス・ノードにkeyに関連付けられた値がないか、関連付けられた値をバイト配列として解釈できない場合、またはバッキング・ストアにアクセスできない場合に返される値。
      戻り値:
      このプリファレンス・ノードのkeyに関連付けられた文字列で表されるバイト配列値、または関連付けられている値が存在しないかバイト配列として解釈できない場合はdef
      例外:
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      NullPointerException - keynullである場合。 (defにはnull値を使用できます。)
      IllegalArgumentException - キーにnull制御文字が含まれている場合、コード・ポイントU+0000。
      関連項目:
    • keys

      public abstract String[] keys() throws BackingStoreException
      この設定ノード内に関連付けられている値を持つキーをすべて返します。 このノードに設定がない場合、返される配列のサイズはゼロになります。

      この実装が格納済みデフォルトをサポートし、このノードに格納済みデフォルトがあり、明示的な設定によってオーバーライドされていない場合は、明示的な設定と格納済みデフォルトが配列に返されます。

      戻り値:
      この設定ノード内に関連付けられている値を持つキーの配列。
      例外:
      BackingStoreException - バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
    • childrenNames

      public abstract String[] childrenNames() throws BackingStoreException
      この設定ノードの子の名前(このノードを起点とした相対名)を返します。 このノードに子がない場合、返される配列のサイズはゼロになります。
      戻り値:
      この設定ノードの子の名前。
      例外:
      BackingStoreException - バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
    • parent

      public abstract Preferences parent()
      このプリファレンス・ノードの親を返します。これがルートの場合はnullを返します。
      戻り値:
      この設定ノードの親。
      例外:
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
    • node

      public abstract Preferences node(String pathName)
      このノードと同じツリーにある名前付き設定ノードを返します。このノードとその上位ノードが存在しない場合は、それらをすべて作成します。 相対パス名または絶対パス名を受け入れます。 相対パス名(スラッシュ文字('/')で始まらない)は、このプリファレンス・ノードに対して相対的に解釈されます。

      返されたノードがこのコールの前に存在しなかった場合、このノードおよびこのコールによって作成された祖先は、返されたノード(またはその祖先または子孫の1つ)でflushメソッドがコールされるまで永続的になることは保証されません。

      パラメータ:
      pathName - 返される設定ノードのパス名。
      戻り値:
      指定された設定ノード。
      例外:
      IllegalArgumentException - パス名が無効である場合(つまり、パス名に連続した複数のスラッシュ文字が含まれているか、パス名がスラッシュ文字で終わっていてその長さが2文字以上の場合)。
      NullPointerException - パス名がnullの場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      関連項目:
    • nodeExists

      public abstract boolean nodeExists(String pathName) throws BackingStoreException
      名前付き設定ノードがこのノードと同じツリーに存在する場合は、trueを返します。 相対パス名(スラッシュ文字('/')で始まらない)は、このプリファレンス・ノードに対して相対的に解釈されます。

      このノード(または祖先)がremoveNode()メソッドですでに削除されている場合は、このメソッドを起動することは有効ですが、パス名""のみを使用して起動すると、falseが返されます。 したがって、pが削除されたかどうかをテストするために、idiom p.nodeExists("")を使用できます。

      パラメータ:
      pathName - 存在が確認されるノードのパス名。
      戻り値:
      指定されたノードが存在する場合にtrue。
      例外:
      BackingStoreException - バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。
      IllegalArgumentException - パス名が無効である場合(つまり、パス名に連続した複数のスラッシュ文字が含まれているか、パス名がスラッシュ文字で終わっていてその長さが2文字以上の場合)。
      NullPointerException - パス名がnullの場合。
      IllegalStateException - このノード(または祖先)がremoveNode()メソッドで削除され、pathNameが空の文字列("")でない場合。
    • removeNode

      public abstract void removeNode() throws BackingStoreException
      この設定ノードとその下位ノードをすべて削除し、削除したノードに含まれている設定をすべて無効にします。 ノードが削除されると、対応するPreferencesインスタンスでname()absolutePath()isUserNode()flush()またはnodeExists("")以外のメソッドを試行すると、IllegalStateExceptionで失敗します。 (Objectで定義されたメソッドは、削除された後もノード上で起動できます。IllegalStateExceptionはスローされません。)

      このノード(または祖先)でflushメソッドがコールされるまで、削除の永続性は保証されません。

      この実装が格納済みデフォルトをサポートしている場合は、ノードを削除すると、このノードまたはその下位ノードに格納済みデフォルトが使用されます。 したがって、このノードのパス名でnodeExistsの後続の呼出しはtrueを返し、このパス名でnodeの後続の呼出しは、プリファレンスまたは子(あるいはその両方)の空でないコレクションを表す(異なる) Preferencesインスタンスを返す場合があります。

      例外:
      BackingStoreException - バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによってすでに削除されている場合。
      UnsupportedOperationException - このメソッドがルート・ノード上で呼び出された場合。
      関連項目:
    • name

      public abstract String name()
      この設定ノードの名前(その親を起点とした相対名)を返します。
      戻り値:
      この設定ノードの名前(その親を起点とした相対名)。
    • absolutePath

      public abstract String absolutePath()
      この設定ノードの絶対パス名を返します。
      戻り値:
      この設定ノードの絶対パス名。
    • isUserNode

      public abstract boolean isUserNode()
      このプリファレンス・ノードがユーザー・プリファレンス・ツリーにある場合はtrueを返し、システム・プリファレンス・ツリーにある場合はfalseを返します。
      戻り値:
      このプリファレンス・ノードがユーザー・プリファレンス・ツリーにある場合はtrue、システム・プリファレンス・ツリーにある場合はfalse
    • toString

      public abstract String toString()
      式で計算された場合と同様に、このプリファレンス・ノードの文字列表現を返します : (this.isUserNode() ? "User" : "System") + " Preference Node: " + this.absolutePath()
      オーバーライド:
      toString、クラスObject
      戻り値:
      このオブジェクトの文字列表現
    • flush

      public abstract void flush() throws BackingStoreException
      この設定ノードとその下位ノードの内容に対するすべての変更を、永続ストアに強制的に格納します。 このメソッドが正常に復帰した場合は、このメソッドが呼び出される前に、このノードをルートとするサブツリーにすべての変更が適用されています。

      この実装を使用すれば、任意のタイミングで永続ストアに変更をフラッシュできます。 このメソッドが呼び出されるまで待機する必要はありません。

      新しく作成されたノードでフラッシュが発生すると、そのノードが永続的になり、まだ永続的になっていない上位ノード(および下位ノード)も永続的になります。 ただし、上位ノードに対する設定値の変更は、永続的になりません

      このメソッドを、removeNode()メソッドを使用して削除されたノード上で呼び出すと、flushSpi()がこのノード上で呼び出されますが、ほかのノードでは呼び出されません。

      例外:
      BackingStoreException - バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。
      関連項目:
    • sync

      public abstract void sync() throws BackingStoreException
      このプリファレンス・ノードとその子孫からの今後の読取りに、sync起動の前に永続ストア(任意のVMから)にコミットされた変更が反映されるようにします。 副作用として、このプリファレンス・ノードおよびその子孫のコンテンツの変更は、このノードでflushメソッドが呼び出されたかのように、永続ストアに強制されます。
      例外:
      BackingStoreException - バッキング・ストアで障害が発生したかストアとの通信が行えないために、このオペレーションを完了できない場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      関連項目:
    • addPreferenceChangeListener

      public abstract void addPreferenceChangeListener(PreferenceChangeListener pcl)
      指定されたリスナーがこの設定ノードに対する設定変更イベントを受信するように登録します。 設定変更イベントは、設定がこのノードに追加されたとき、設定がこのノードから削除されたとき、または設定に関連付けられている値が変更されたときに生成されます。 (設定変更イベントは、removeNode()メソッドでは生成されません。このメソッドでは、ノード変更イベントが生成されます。 プリファレンス変更イベントは、clearメソッドによって生成されます。)

      ノード変更イベントは、登録されたリスナーと同じJVM内で変更が行われたときにだけ、生成されます。ただし、一部の実装では、現在のJVMの外部で行われた変更に対して、イベントが生成されることがあります。 イベントが生成された時点で、変更が永続的になっていないことがあります。 現在のノードの下位ノードで設定が変更されたときは、イベントは生成されません。そのようなイベントが必要な場合は、そのノードを登録する必要があります。

      パラメータ:
      pcl - 追加する設定変更リスナー。
      例外:
      NullPointerException - pclがNULLの場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      関連項目:
    • removePreferenceChangeListener

      public abstract void removePreferenceChangeListener(PreferenceChangeListener pcl)
      指定された設定変更リスナーを削除して、設定変更イベントの受信を停止します。
      パラメータ:
      pcl - 削除する設定変更リスナー。
      例外:
      IllegalArgumentException - pclがこのノードに登録済のプリファレンス変更リスナーではなかった場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      関連項目:
    • addNodeChangeListener

      public abstract void addNodeChangeListener(NodeChangeListener ncl)
      指定されたリスナーがこのノードのノード変更イベントを受信するように登録します。 ノード変更イベントは、子ノードがこのノードに追加されたとき、またはこのノードから削除されたときに生成されます。 (1回のremoveNode()呼出しによって、複数のノード変更イベントが、削除されたノードをルートとするサブツリー内の各ノードに1つずつ生成されます。)

      ノード変更イベントは、登録されたリスナーと同じJVM内で変更が行われたときにだけ、生成されます。ただし、一部の実装では、現在のJVMの外部で行われた変更に対して、イベントが生成されることがあります。 イベントが生成された時点で、変更が持続的になっていないことがあります。 現在のノードの配下にない下位ノードが追加または削除されたときは、イベントは生成されません。そのようなイベントが必要な場合は、そのノードを登録する必要があります。

      作成されたノードは、ただちに有効になりません。 これらのノードは、アクセスされたときに暗黙的に作成されます。このため、アクセスされる前に、子ノードがバッキング・ストアに存在するかどうかを実装が判断できない場合があります(たとえば、バッキング・ストアが到達不能な場合や、キャッシュされた情報が最新でない場合など)。 このような状況でのノード変更イベントの生成は、特に定義されていません。

      パラメータ:
      ncl - 追加するNodeChangeListener
      例外:
      NullPointerException - nclがNULLの場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      関連項目:
    • removeNodeChangeListener

      public abstract void removeNodeChangeListener(NodeChangeListener ncl)
      指定されたNodeChangeListenerを削除して、変更イベントを受信しないようにします。
      パラメータ:
      ncl - 削除するNodeChangeListener
      例外:
      IllegalArgumentException - nclがこのノードに登録されたNodeChangeListenerではなかった場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      関連項目:
    • exportNode

      public abstract void exportNode(OutputStream os) throws IOException, BackingStoreException
      このノード(その下位ノードは含まない)に含まれているすべての設定を表すXMLドキュメントを、指定された出力ストリームに発行します。 このXMLドキュメントは、このノードのオフライン・バックアップにもなります。

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

      
       <!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
       
      UTF-8文字エンコーディングが使用されます。

      このメソッドは通常のルールと異なり、このクラスの複数のメソッドを並行して実行すると、逐次実行した場合と同じ結果が生成されます。 このメソッドの1回の呼出しでこのノードの設定が並行して変更された場合、エクスポートされた設定がこのノードに含まれる設定と一致していないことがあります。つまり、並行して行われた変更は、エクスポートされたデータに反映されていないことがあります。

      パラメータ:
      os - XMLドキュメントの発行先の出力ストリーム
      例外:
      IOException - 指定した出力ストリームに書き込むと、IOExceptionになります。
      BackingStoreException - 設定データがバッキング・ストアから読み取れない場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      関連項目:
    • exportSubtree

      public abstract void exportSubtree(OutputStream os) throws IOException, BackingStoreException
      このノードとそのすべての下位ノードに含まれるすべての設定を表すXMLドキュメントを発行します。 このXMLドキュメントは、このノードをルートとするサブツリーのオフライン・バックアップにもなります。

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

      
       <!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
       
      UTF-8文字エンコーディングが使用されます。

      このメソッドは通常のルールと異なり、このクラスの複数のメソッドを並行して実行すると、逐次実行した場合と同じ結果が生成されます。 このメソッドの1回の呼出しでこのノードをルートとするサブツリーの設定またはノードが並行して変更された場合、エクスポートされた設定がサブツリーと一致していないことがあります。つまり、並行して行われた変更は、エクスポートされたデータに反映されていないことがあります。

      パラメータ:
      os - XMLドキュメントの発行先の出力ストリーム
      例外:
      IOException - 指定した出力ストリームに書き込むと、IOExceptionになります。
      BackingStoreException - 設定データがバッキング・ストアから読み取れない場合。
      IllegalStateException - このノード(または上位ノード)がremoveNode()メソッドによって削除されている場合。
      関連項目:
    • importPreferences

      public static void importPreferences(InputStream is) throws IOException, InvalidPreferencesFormatException
      XMLドキュメントによって表されるすべての設定を、指定された入力ストリームからインポートします。 このドキュメントは、ユーザー設定またはシステム設定を表しています。 ユーザー設定を表している場合は、呼び出したユーザーの設定ツリーに設定がインポートされます。別のユーザー設定ツリーのドキュメントをインポートしてもかまいません。 このドキュメントに記述されている設定の設定ノードが存在しない場合は、そのノードが作成されます。

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

      
       <!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
       
      このメソッドは、exportNode(OutputStream)およびexportSubtree(OutputStream)と組み合わせて使用するように設計されています。

      このメソッドは通常のルールと異なり、このクラスの複数のメソッドを並行して実行すると、逐次実行した場合と同じ結果が生成されます。 このメソッドを実行すると、このクラスのほかのpublicメソッド(node(String)put(String, String)など)をオーバーライドして実装した場合と同じ結果が生成されます。

      パラメータ:
      is - XMLドキュメントの読込み元の入力ストリーム。
      例外:
      IOException - 指定した入力ストリームから読み取ると、IOExceptionになります。
      InvalidPreferencesFormatException - 入力ストリーム上のデータが、要求されたドキュメント型を持つ有効なXMLドキュメントにならない場合。
      SecurityException - セキュリティ・マネージャが存在し、RuntimePermission("preferences")が拒否された場合。
      関連項目: