public abstract class Preferences extends Object
有两个独立的树的偏好节点,一个用于用户的喜好和一个系统的喜好。每个用户都有一个单独的用户偏好树,在一个给定的系统中的所有用户共享相同的系统偏好树。“用户”和“系统”的精确描述将有所不同,从实施到实施。存储在用户偏好树中的典型信息可能包括字体选择、颜色选择或首选应用程序的窗口位置和大小。在系统偏好树中存储的典型信息可能包括应用程序的安装配置数据。
在一个偏好树中的节点以类似的方式在分级文件系统中的目录中命名。在树的每个节点都有一个节点名称偏好(不一定是唯一的),一个独特的绝对路径名,和一个路径名相对的每个祖先包括自己。
根节点有一个空字符串的节点名称(“”)。每一个其他节点有一个任意的节点名称,指定在它创建的时间。这个名称的唯一的限制是它不能是空字符串,它不能包含“字符”(“/”)。
根节点具有"/"绝对路径名。根节点的儿童有"/" + 绝对路径名。所有其他节点的 + "/" + 绝对路径名。请注意,所有的绝对路径名称都是从“字符”开始的。
一个节点n的路径名称相对其祖先一仅仅是字符串,必须添加一的绝对路径名为形式的绝对路径名,与初始斜杠字符(如果有的话)删除。请注意:
最后注意:
允许修改首选项数据的所有方法都允许异步操作;它们可以立即返回,并将最终将更改传播到具有实现依赖延迟的持久支持存储区中。的flush方法可用于同步力更新存储支持。java虚拟机的正常终止将不造成的损失有待更新,显式调用所需的flush不终止保证待更新是持续的。
所有的方法,阅读的喜好从Preferences对象需要调用程序提供的默认值。默认值是没有价值已经预先设定或者如果备份存储是不可用的返回。该意图是允许应用程序运行,尽管有轻微的退化的功能,即使备份存储变得不可用。的几种方法,如flush,有语义,防止操作如果后备存储不可用。普通的应用程序不需要调用这些方法,可事实上他们宣布把BackingStoreException
鉴定。
这个类中的方法可以同时被多个线程调用一个Java虚拟机没有外部同步的需要,其结果相当于将一些串行执行。如果这个类是同时使用由多个JVM将偏好数据在同一存储备份,数据存储将不被损坏,但没有其他担保有关的偏好数据的一致性。
这个类包含一个导出/导入设备,允许将首选项“导出”到XML文档中,并且表示首选项的xml文档将“导入”到系统中。该设施可用于备份所有或偏好树的一部分,并从备份中恢复。
XML文档有如下DOCTYPE声明:
<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
注意系统URI(http://java.sun.com/dtd/preferences.dtd)是不访问进口或出口时的偏好;它仅仅作为一个字符串来唯一标识的DTD,它是:z-2cde2a6a- cca5-485d-8e50-bb84d0dfb3a2每
Preferences实施必须有相关的
PreferencesFactory
实施。每一个java SE(TM)的实施提供一些必须的手段
PreferencesFactory实现指定用于生成根节点的偏好。这允许管理员以另一种实现替换默认首选项实现。
实现注意:在Sun的JRE,实施的PreferencesFactory位于如下:
如果系统性能java.util.prefs.PreferencesFactory定义,那么它是一个实现PreferencesFactory接口类的完全限定名。类的加载和实例化;如果这个过程失败,则抛出一个未指定的错误。
如果一个PreferencesFactory实现类文件被安装在一个JAR文件,是对system class loader
可见,和JAR文件包含在资源目录META-INF/services命名java.util.prefs.PreferencesFactory供应商的配置文件,然后第一类名称,文件被指定。如果提供了不止一个这样的文件,则第一个找到的文件将被使用。类的加载和实例化;如果这个过程失败,则抛出一个未指定的错误。
最后,如果提供的是没有上述系统的性能和扩展JAR文件,则系统默认PreferencesFactory实现底层平台加载和实例化。
Modifier and Type | Field and Description |
---|---|
static int |
MAX_KEY_LENGTH
允许作为键的字符串的最大长度(80个字符)。
|
static int |
MAX_NAME_LENGTH
节点名的最大长度(80个字符)。
|
static int |
MAX_VALUE_LENGTH
允许作为一个值的字符串的最大长度(8192个字符)。
|
Modifier | Constructor and Description |
---|---|
protected |
Preferences()
唯一的构造函数。
|
Modifier and Type | Method and Description |
---|---|
abstract String |
absolutePath()
返回此首选节点的绝对路径名。
|
abstract void |
addNodeChangeListener(NodeChangeListener ncl)
寄存器指定监听器接收节点变化事件此节点。
|
abstract void |
addPreferenceChangeListener(PreferenceChangeListener pcl)
寄存器指定监听器接收偏好变化事件这种偏好结。
|
abstract String[] |
childrenNames()
返回此首选节点的子节点的名称,相对于此节点。
|
abstract void |
clear()
移除此首选项中的所有首选项(键值关联)。
|
abstract void |
exportNode(OutputStream os)
在指定的输出流上发出一个表示此节点中包含的所有首选项的xml文档(但不是它的后代)。
|
abstract void |
exportSubtree(OutputStream os)
发出一个表示此节点中包含的所有首选项和所有子项的xml文档。
|
abstract void |
flush()
强制此首选节点及其子节点的内容到持久存储的内容的任何更改。
|
abstract String |
get(String key, String def)
返回在这个首选项节点中与指定的键关联的值。
|
abstract boolean |
getBoolean(String key, boolean def)
返回在这个首选项节点中与指定的键关联的字符串表示的布尔值。
|
abstract byte[] |
getByteArray(String key, byte[] def)
返回在这个首选项节点中与指定的键关联的字符串表示的字节数组值。
|
abstract double |
getDouble(String key, double def)
返回在这个首选项节点中与指定的键关联的字符串表示的双值。
|
abstract float |
getFloat(String key, float def)
返回在这个首选项节点中与指定的键相关联的字符串表示的浮点值。
|
abstract int |
getInt(String key, int def)
返回通过在这个偏好节点指定键关联的字符串表示的int值。
|
abstract long |
getLong(String key, long def)
返回在这个首选项节点中与指定的键关联的字符串所表示的长值。
|
static void |
importPreferences(InputStream is)
输入指定的输入流中的XML文档所表示的所有参数。
|
abstract boolean |
isUserNode()
返回
true如果偏好节点在用户偏好树,
false如果它在系统偏好树。
|
abstract String[] |
keys()
返回在这个首选项节点中有关联的值的所有键。
|
abstract String |
name()
返回此首选节点的名称,相对于它的父。
|
abstract Preferences |
node(String pathName)
返回在同一棵树中的命名的首选节点,创建它和它的任何一个祖先,如果他们不已经存在。
|
abstract boolean |
nodeExists(String pathName)
如果在同一棵树中存在这个节点,则返回真的。
|
abstract Preferences |
parent()
返回此偏好节点的父节点,或
null如果这根。
|
abstract void |
put(String key, String value)
将指定的值与此首选项节点中的指定键关联。
|
abstract void |
putBoolean(String key, boolean value)
将一个字符串表示为在该首选项节点中指定的键指定的指定的布尔值。
|
abstract void |
putByteArray(String key, byte[] value)
将一个字符串表示为在该首选项节点中指定的键表示指定的字节数组。
|
abstract void |
putDouble(String key, double value)
将一个字符串表示为在该首选项节点中指定的键的指定的双值。
|
abstract void |
putFloat(String key, float value)
将一个字符串表示为在该首选项节点中指定的键,表示指定的浮点值。
|
abstract void |
putInt(String key, int value)
将一个字符串指定的int值在这种偏好节点指定的关键。
|
abstract void |
putLong(String key, long value)
将一个字符串表示为在该首选项节点中指定的键,表示指定的长值。
|
abstract void |
remove(String key)
移除此首选项节点中与指定键关联的值,如果有。
|
abstract void |
removeNode()
消除这种偏好节点及其所有后裔,使包含在删除节点的任何偏好。
|
abstract void |
removeNodeChangeListener(NodeChangeListener ncl)
移除指定的
NodeChangeListener,所以它不再接受变更事件。
|
abstract void |
removePreferenceChangeListener(PreferenceChangeListener pcl)
移除指定的偏好更改侦听器,所以它不再接收偏好更改事件。
|
abstract void |
sync()
确保未来读这偏好节点及其后裔反映,分别致力于持久性存储的任何变化(从任何虚拟机)的
sync调用之前。
|
static Preferences |
systemNodeForPackage(类<?> c)
从与指定的类的包关联的系统偏好树(按约定)返回首选节点。
|
static Preferences |
systemRoot()
返回系统的根首选节点。
|
abstract String |
toString()
返回此偏好节点的字符串表示,如果计算出的结果:
(this.isUserNode() ? "User" : "System") + " Preference Node: " + this.absolutePath()。
|
static Preferences |
userNodeForPackage(类<?> c)
从调用与指定类的包关联的(按约定)的调用用户的首选树中返回首选节点。
|
static Preferences |
userRoot()
返回调用用户的根首选节点。
|
public static final int MAX_KEY_LENGTH
public static final int MAX_VALUE_LENGTH
public static final int MAX_NAME_LENGTH
public static Preferences userNodeForPackage(类<?> c)
本公约不适用于未命名的包中,其相关的节点<unnamed>偏好。这个节点是不适合长期使用,但在尚不属于一个包装程序的早期发展的便利,并为“一次性”节目。有价值的数据不应该被存储在这个节点上,因为它是使用它的所有程序共享。
一类Foo希望获得有关包装的偏好可以获得优先节点如下:
静态偏好参数=偏好。usernodeforpackage(Foo类);这个成语,避免使用字符串来描述偏好节点需要和降低运行时失败的可能性。(如果类的名字拼错,这通常会导致编译时的错误。)
调用此方法将导致返回的节点和它的祖先,如果他们不已经存在。如果返回的节点没有这个电话之前存在,这个节点,都是由这个调用创建任何祖先不保证直到flush方法调用返回的节点成为永久(或其祖先和后代)。
c
-其包装用户偏好节点的类所需的。
NullPointerException
。
SecurityException
-如果一个安全管理存在,它否认
RuntimePermission("preferences")。
RuntimePermission
public static Preferences systemNodeForPackage(类<?> c)
本公约不适用于未命名的包中,其相关的偏好是<unnamed>节点。该节点不适合长期使用,但在尚不属于一个包装程序的早期发展的便利,并为“一次性”节目。有价值的数据不应该被存储在这个节点上,因为它是使用它的所有程序共享。
一类Foo希望获得有关包装的偏好可以获得优先节点如下:
静态偏好参数=偏好。systemnodeforpackage(Foo类);这个成语,避免使用字符串来描述偏好节点需要和降低运行时失败的可能性。(如果类的名字拼错,这通常会导致编译时的错误。)
调用此方法将导致返回的节点和它的祖先,如果他们不已经存在。如果返回的节点没有这个电话之前存在,这个节点,都是由这个调用创建任何祖先不保证直到flush方法调用返回的节点成为永久(或其祖先和后代)。
c
-其包装系统节点的类所需的偏好。
NullPointerException
。
SecurityException
-如果一个安全管理存在,它否认
RuntimePermission("preferences")。
RuntimePermission
public static Preferences userRoot()
SecurityException
-如果一个安全管理存在,它否认
RuntimePermission("preferences")。
RuntimePermission
public static Preferences systemRoot()
SecurityException
-如果一个安全管理存在,它否认
RuntimePermission("preferences")。
RuntimePermission
public abstract void put(String key, String value)
key
键与指定的值是相关联的。
value
值必须与指定键关联。
NullPointerException
如果键或值
null。
IllegalArgumentException
-如果
key.length()超过
MAX_KEY_LENGTH或者
value.length超过
MAX_VALUE_LENGTH。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
public abstract String get(String key, String def)
一些实现可能将默认值存储在它们的后台存储区中。如果不存在具有指定键关联的值但有这样一个存储的默认,它优先于指定的默认返回。
key
密钥的相关值被返回。
def
-是在事件,这种偏好节点没有与
key值返回的值。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
NullPointerException
-如果
key是
null。(对
def一
null价值是允许的。)
public abstract void remove(String key)
如果这存储的默认实现支持,并有指定的偏好这样的默认存储的默认将“暴露”这个称呼,在某种意义上说,它将由一个成功的电话get返回。
key
键的映射是从偏好节点删除。
NullPointerException
。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
public abstract void clear() throws BackingStoreException
如果这个实现支持存储的默认,这个节点中的偏好层次结构包含任何该等违约,存储的默认将“暴露”这个称呼,在某种意义上说,他们将通过电话get成功返回。
BackingStoreException
-如果此操作不能由于在存储备份失败的完成,或无法与它沟通。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
removeNode()
public abstract void putInt(String key, int value)
Integer.toString(int)
返回。这种方法的目的是用于配合
getInt(java.lang.String, int)
。
key
键的值的字符串形式是相关的。
value
值的字符串形式是与关键。
NullPointerException
。
IllegalArgumentException
-如果
key.length()超过
MAX_KEY_LENGTH。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
getInt(String,int)
public abstract int getInt(String key, int def)
Integer.parseInt(String)
。如果没有与键关联的值返回指定的默认存储支持,无法访问,或者如果
Integer.parseInt(String)如果相关的价值是通过把一
NumberFormatException
。这种方法的目的是用于配合
putInt(java.lang.String, int)
。
如果实施支持存储的默认和这样一个默认的存在,是可访问的,并且可以转换为与Integer.parseInt int,int类型是优先于指定的默认返回。
key
键的值是int返回
def
-是在事件,这种偏好节点没有与
key或相关的价值不相关的值被解释为一个int型的返回值,或者是不可访问的存储支持。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
NullPointerException
。
putInt(String,int)
,
get(String,String)
public abstract void putLong(String key, long value)
Long.toString(long)
返回。这种方法的目的是用于配合
getLong(java.lang.String, long)
。
key
键的值的字符串形式是相关的。
value
值的字符串形式是与关键。
NullPointerException
。
IllegalArgumentException
-如果
key.length()超过
MAX_KEY_LENGTH。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
getLong(String,long)
public abstract long getLong(String key, long def)
Long.parseLong(String)
。如果没有与键关联的值返回指定的默认存储支持,无法访问,或者如果
Long.parseLong(String)如果相关的价值是通过把一
NumberFormatException
。这种方法的目的是用于配合
putLong(java.lang.String, long)
。
如果实施支持存储的默认和这样一个默认的存在,是可访问的,并且可以被转换为一个长着Long.parseLong,这是优先于指定的默认返回。
key
键的值作为长回来。
def
-是在事件,这种偏好节点没有与
key或相关的价值不相关的值被解释为一个长的返回值,或者是不可访问的存储支持。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
NullPointerException
。
putLong(String,long)
,
get(String,String)
public abstract void putBoolean(String key, boolean value)
getBoolean(java.lang.String, boolean)
。
key
键的值的字符串形式是相关的。
value
值的字符串形式是与关键。
NullPointerException
。
IllegalArgumentException
-如果
key.length()超过
MAX_KEY_LENGTH。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
getBoolean(String,boolean)
,
get(String,String)
public abstract boolean getBoolean(String key, boolean def)
putBoolean(java.lang.String, boolean)
。
如果没有与键关联的值返回指定的默认存储支持,无法访问,或者相关的价值不是"true"或"false",忽略大小写。
如果实施支持存储的默认和这样一个默认的存在,是可访问的,它被优先用于指定默认值,除非存储的默认是"true"或"false",忽略的情况下,在这种情况下,默认是使用。
key
键的值是一个布尔返回。
def
-是在事件,这种偏好节点没有与
key或相关的价值不相关的值被解释为一个布尔函数的返回值,或者是不可访问的存储支持。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
NullPointerException
。
get(String,String)
,
putBoolean(String,boolean)
public abstract void putFloat(String key, float value)
Float.toString(float)
返回。这种方法的目的是用于配合
getFloat(java.lang.String, float)
。
key
键的值的字符串形式是相关的。
value
值的字符串形式是与关键。
NullPointerException
。
IllegalArgumentException
-如果
key.length()超过
MAX_KEY_LENGTH。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
getFloat(String,float)
public abstract float getFloat(String key, float def)
Float.parseFloat(String)
。如果没有与键关联的值返回指定的默认存储支持,无法访问,或者如果
Float.parseFloat(String)如果相关的价值是通过把一
NumberFormatException
。这种方法的目的是用于
putFloat(java.lang.String, float)
如果实施支持存储的默认和这样一个默认的存在,是可访问的,并且可以被转换为一个浮动Float.parseFloat,这个浮动是优先于指定的默认返回。
结合。key
键的值作为浮返回。
def
-是在事件,这种偏好节点没有与
key或相关的价值不相关的值被解释为一个浮动的返回值,或者是不可访问的存储支持。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
NullPointerException
。
putFloat(String,float)
,
get(String,String)
public abstract void putDouble(String key, double value)
Double.toString(double)
返回。这种方法的目的是用于配合
getDouble(java.lang.String, double)
。
key
键的值的字符串形式是相关的。
value
值的字符串形式是与关键。
NullPointerException
。
IllegalArgumentException
-如果
key.length()超过
MAX_KEY_LENGTH。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
getDouble(String,double)
public abstract double getDouble(String key, double def)
Double.parseDouble(String)
。如果没有与键关联的值返回指定的默认存储支持,无法访问,或者如果
Double.parseDouble(String)如果相关的价值是通过把一
NumberFormatException
。这种方法的目的是用于配合
putDouble(java.lang.String, double)
。
如果实施支持存储的默认和这样一个默认的存在,是可访问的,并且可以被转换为一个双Double.parseDouble,这双是优先于指定的默认返回。
key
键的值是作为一个双回来。
def
-是在事件,这种偏好节点没有与
key或相关的价值不相关的值被解释为一个双重的返回值,或者是不可访问的存储支持。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
NullPointerException
。
putDouble(String,double)
,
get(String,String)
public abstract void putByteArray(String key, byte[] value)
getByteArray(java.lang.String, byte[])
。
key
键的值的字符串形式是相关的。
value
值的字符串形式是与关键。
NullPointerException
如果键或值
null。
IllegalArgumentException
如果关键。length()超过max_key_length或者value.length超过max_value_length * 3 / 4。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
getByteArray(String,byte[])
,
get(String,String)
public abstract byte[] getByteArray(String key, byte[] def)
putByteArray(java.lang.String, byte[])
。
如果没有与键关联的值返回指定的默认存储支持,无法访问,或者如果关联的值不是一个有效的Base64编码的字节数组(如上文)。
如果实施支持存储的默认和这样一个默认的存在,是可访问的,它被优先用于指定默认值,除非存储的默认是不是一个有效的Base64编码的字节数组(如上所述),在这种情况下,默认是使用。
key
键的值是作为一个字节数组返回。
def
-是在事件,这种偏好节点没有与
key或相关的价值不相关的值被解释为一个字节数组的返回值,或者是不可访问的存储支持。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
NullPointerException
-如果
key是
null。(对
def是允许的。一
null值)
get(String,String)
,
putByteArray(String,byte[])
public abstract String[] keys() throws BackingStoreException
如果实施支持存储的默认有任何出现在这个节点没有被重写,以明确的偏好,默认是除了任何明确的偏好的数组返回。
BackingStoreException
-如果此操作不能由于在存储备份失败的完成,或无法与它沟通。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
public abstract String[] childrenNames() throws BackingStoreException
BackingStoreException
-如果此操作不能由于在存储备份失败的完成,或无法与它沟通。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
public abstract Preferences parent()
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
public abstract Preferences node(String pathName)
如果返回的节点没有这个电话之前存在,这个节点,都是由这个调用创建任何祖先不保证直到flush方法调用返回的节点成为永久(或其祖先和后代)。
pathName
-偏好节点的路径名称返回。
IllegalArgumentException
如果路径名无效(即,它包含多个斜杠字符,或者用斜杠字符结束,不仅仅是一个字符)。
NullPointerException
如果路径名是
null。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
flush()
public abstract boolean nodeExists(String pathName) throws BackingStoreException
如果这个节点(或祖先)已经与removeNode()
方法除去,它是来调用这个方法的法律,但只有与路径名"";调用将返回false。因此,成语p.nodeExists("")可以用来测试是否p已被删除。
pathName
-节点的存在是要检查路径名。
BackingStoreException
-如果此操作不能由于在存储备份失败的完成,或无法与它沟通。
IllegalArgumentException
如果路径名无效(即,它包含多个斜杠字符,或者用斜杠字符结束,不仅仅是一个字符)。
NullPointerException
如果路径名是
null。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
方法和
pathName删除不是空字符串(
"")。
public abstract void removeNode() throws BackingStoreException
name()
,
absolutePath()
,
isUserNode()
,
flush()
或
nodeExists("")
在相应的
Preferences实例将失败与
IllegalStateException。(定义的方法对
Object
仍然可以调用一个节点后,它已被删除;他们不会把
IllegalStateException
去除不一定会持续直到flush方法被称为节点(或祖先)。
如果这个实现支持存储的默认,删除一个节点存储的默认任何暴露在或低于此节点。因此,随后的电话nodeExists在此节点上的路径名可能返回true,和随后的电话node走上这条路的名字可能返回(不同的)Preferences实例代表一个非空集合的偏好和/或孩子。
。)BackingStoreException
-如果此操作不能由于在存储备份失败的完成,或无法与它沟通。
IllegalStateException
-如果此节点(或祖先)已经与
removeNode()
法去除。
UnsupportedOperationException
-如果这方法在根节点调用。
flush()
public abstract String name()
public abstract String absolutePath()
public abstract boolean isUserNode()
public abstract String toString()
public abstract void flush() throws BackingStoreException
实现可以在任何时间刷新到持久存储的变化。他们不需要等待这种方法被称为。
当一个刷新发生在一个新创建的节点上,它是由持久性,因为是任何祖先(和后代),有尚未作出持久性。然而,在祖先的任何偏好值的变化不保证是持久的。
如果这个方法是一个节点,已与removeNode()
方法除去调用,flushspi()正在此节点上调用的,而不是别人。
BackingStoreException
-如果此操作不能由于在存储备份失败的完成,或无法与它沟通。
sync()
public abstract void sync() throws BackingStoreException
BackingStoreException
-如果此操作不能由于在存储备份失败的完成,或无法与它沟通。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
flush()
public abstract void addPreferenceChangeListener(PreferenceChangeListener pcl)
removeNode()
方法,产生一个节点变化事件生成。偏好改变的事件是
clear方法产生
事件是只保证在相同的JVM为注册侦听器的变化,尽管一些实现可能产生了在JVM变化事件。事件可能在更改之前生成已被持久化。当此节点的子类中的偏好被修改时,事件不会产生;希望这样的事件的调用方必须在每个子代中注册。
。)pcl
的偏好改变监听器添加。
NullPointerException
-如果
pcl是空的。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
removePreferenceChangeListener(PreferenceChangeListener)
,
addNodeChangeListener(NodeChangeListener)
public abstract void removePreferenceChangeListener(PreferenceChangeListener pcl)
pcl
的偏好改变监听器移除。
IllegalArgumentException
-如果
pcl未注册的偏好变化的听众在这个节点。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
addPreferenceChangeListener(PreferenceChangeListener)
public abstract void addNodeChangeListener(NodeChangeListener ncl)
removeNode()
调用结果多节点变化事件,一为根的子树中被删除的节点,每个节点
事件是只保证在相同的JVM为注册侦听器的变化,尽管一些实现可能产生了在JVM变化事件。在更改已成为永久性之前,可能会产生事件。当此节点的间接后裔被添加或删除时,不产生事件;希望这样的事件的调用方必须在每个子代中注册。
关于节点创建可以提供一些保证。因为节点隐式地创建访问时,它可能无法实现确定之前访问后台存储存在子节点是可行的(例如,由于支持存储访问或缓存信息过时)。在这种情况下,实现都不需要生成节点更改事件,也不禁止这样做。
)ncl
-
NodeChangeListener添加。
NullPointerException
-如果
ncl是空的。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
removeNodeChangeListener(NodeChangeListener)
,
addPreferenceChangeListener(PreferenceChangeListener)
public abstract void removeNodeChangeListener(NodeChangeListener ncl)
ncl
-
NodeChangeListener删除。
IllegalArgumentException
-如果
ncl未注册
NodeChangeListener在此节点上。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
addNodeChangeListener(NodeChangeListener)
public abstract void exportNode(OutputStream os) throws IOException, BackingStoreException
XML文档将有如下DOCTYPE声明:
<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
UTF-8字符编码将使用。
此方法是一个异常的一般规则,同时执行多个方法的结果,在这个类产生的结果相当于一些串行执行。如果此节点的偏好同时被修改,使用这种方法的调用,导出的偏好包括一个“模糊快照”的节点中包含的偏好;一些并发修改可能会反映在导出的数据,而其他人可能不。
os
-在输出流发出的XML文档。
IOException
如果写入到指定的输出流中
IOException。
BackingStoreException
如果偏好数据不能从后备存储读取。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
importPreferences(InputStream)
public abstract void exportSubtree(OutputStream os) throws IOException, BackingStoreException
XML文档将有如下DOCTYPE声明:
<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
UTF-8字符编码将使用。
此方法是一个异常的一般规则,同时执行多个方法的结果,在这个类产生的结果相当于一些串行执行。如果在这个节点的子树的偏好或节点修改的同时,该方法的调用,出口优惠包括“模糊快照”的子树;一些并行的修改可能会体现在出口数据,而其他人可能没有。
os
-在输出流发出的XML文档。
IOException
如果写入到指定的输出流中
IOException。
BackingStoreException
如果偏好数据不能从后备存储读取。
IllegalStateException
-如果此节点(或祖先)已与
removeNode()
法去除。
importPreferences(InputStream)
,
exportNode(OutputStream)
public static void importPreferences(InputStream is) throws IOException, InvalidPreferencesFormatException
XML文档必须有如下DOCTYPE声明:
<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
(这种方法是设计用于与
exportNode(OutputStream)
和
exportSubtree(OutputStream)
连词。
此方法是一个异常的一般规则,同时执行多个方法的结果,在这个类产生的结果相当于一些串行执行。该方法的行为如果上面这个类中的公共方法的实施,特别是node(String)
和put(String, String)
。
is
-从中读取XML文件的输入流。
IOException
如果从指定的输入流,结果在一个
IOException阅读。
InvalidPreferencesFormatException
对输入数据流不构成与授权文件类型有效的XML文档。
SecurityException
-如果一个安全管理存在,它否认
RuntimePermission("preferences")。
RuntimePermission
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.