Класс Preferences
- Прямые известные подклассы:
AbstractPreferences
public abstract class Preferences extends Object
Существует два отдельных дерева узлов настроек: одно для пользовательских настроек и одно для системных настроек. Каждый пользователь имеет отдельное дерево пользовательских настроек, и все пользователи в данной системе используют одно и то же дерево системных настроек. Точное описание «пользователя» и «системы» будет зависеть от реализации. Типичная информация, хранящаяся в дереве пользовательских настроек, может включать выбор шрифта, выбор цвета или предпочтительное расположение и размер окна для конкретного приложения. Типичная информация, хранящаяся в дереве системных настроек, может включать данные конфигурации установки приложения.
Узлы в дереве настроек называются аналогично каталогам в иерархической файловой системе. Каждый узел в дереве настроек имеет имя узла (которое необязательно уникально), уникальное абсолютное имя пути и имя пути относительно каждого предка, включая себя.
Узел корня имеет имя узла пустую строку (""). Каждый другой узел имеет произвольное имя узла, указанное при его создании. Единственные ограничения на это имя состоят в том, что оно не может быть пустой строкой и не может содержать символ косой черты ('/').
Узел корня имеет абсолютное имя пути "/". Дочерние узлы корневого узла имеют абсолютные имена путей "/" + <имя узла>. Все остальные узлы имеют абсолютные имена путей <абсолютный путь родительского узла> + "/" + <имя узла>. Обратите внимание, что все абсолютные имена путей начинаются с символа косой черты.
Имя пути узла n, относительное к его предку a, просто строка, которая должна быть добавлена к абсолютному имени пути a для формирования абсолютного имени пути n, при этом начальный символ косой черты (если он присутствует) удаляется. Обратите внимание:
- Никакие относительные имена путей не начинаются с символа косой черты.
- Имя пути каждого узла, относительное к самому себе, — пустая строка.
- Имя пути каждого узла, относительное к его родителю, — это его имя узла (за исключением корневого узла, у которого нет родителя).
- Имя пути каждого узла, относительное к корню, — это абсолютное имя пути, из которого удален начальный символ косой черты.
Наконец, обратите внимание:
- Имя пути не содержит нескольких последовательных символов косой черты.
- Ни одно имя пути, за исключением абсолютного имени пути корневого узла, не заканчивается на символе косой черты.
- Любая строка, которая соответствует этим двум правилам, является допустимым именем пути.
Все методы, изменяющие данные настроек, разрешено выполнять асинхронно; они могут возвращать значение немедленно, и изменения в конечном итоге будут передаваться в постоянное хранилище с задержкой, зависящей от реализации. Метод flush может использоваться для синхронного принудительного обновления хранилища. Нормальная остановка виртуальной машины Java не приведет к потере ожидаемых обновлений — явное обращение flush не требуется при завершении для обеспечения сохранения ожидаемых обновлений.
Все методы, считывающие настройки из объекта Preferences, требуют от вызывающего предоставления значения по умолчанию. Значение по умолчанию возвращается, если значение ранее не было установлено или если хранилище недоступно. Цель состоит в том, чтобы приложения могли работать, хотя и с несколько ухудшенной функциональностью, даже если хранилище станет недоступным. Некоторые методы, например flush, имеют семантику, которая препятствует их работе, если хранилище недоступно. Обычные приложения не должны вызывать ни один из этих методов, которые могут быть определены по тому, что они объявлены как выбрасывающие BackingStoreException.
Методы этого класса могут вызываться одновременно несколькими потоками в одной JVM без необходимости внешней синхронизации, и результаты будут эквивалентны некоторому последовательному выполнению. Если этот класс используется одновременно разными JVM, которые хранят свои данные настроек в одном хранилище, данные хранилища не будут повреждены, но никаких других гарантий относительно согласованности данных настроек не предоставляется.
Этот класс содержит средства экспорта/импорта, позволяющие «экспортировать» настройки в XML-документ и «импортировать» XML-документы, представляющие настройки, обратно в систему. Это средство может использоваться для резервного копирования всех или части дерева настроек и последующего восстановления из резервной копии.
XML-документ имеет следующее объявление DOCTYPE:
<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
Обратите внимание, что системный URI (http://java.sun.com/dtd/preferences.dtd) не используется при экспорте или импорте настроек; он просто служит строкой для уникальной идентификации 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 для создания корневых узлов настроек. Это позволяет администратору заменить реализацию настроек по умолчанию альтернативной реализацией.- Примечание реализации:
- Реализация
PreferencesFactoryрасположена следующим образом:Если системная переменная
java.util.prefs.PreferencesFactoryопределена, то она рассматривается как полное имя класса, реализующего интерфейсPreferencesFactory. Класс загружается и создается экземпляр; если этот процесс завершается неудачно, то генерируется неопределенная ошибка.Если файл реализации класса
PreferencesFactoryбыл установлен в файле JAR, который виден загрузчику классовsystem class loader, и этот JAR-файл содержит файл конфигурации поставщика, названныйjava.util.prefs.PreferencesFactoryв каталоге ресурсовMETA-INF/services, то имя первого класса, указанного в этом файле, используется. Если предоставлено более одного такого JAR-файла, используется первый найденный. Класс загружается и создается экземпляр; если этот процесс завершается неудачно, то генерируется неопределенная ошибка.Наконец, если ни системная переменная, ни расширенный JAR-файл не предоставлены, то загружается и создается экземпляр системной реализации
PreferencesFactoryдля платформы.
- С:
- 1.4
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
MAX_KEY_LENGTH |
Максимальная длина строки, разрешенной в качестве ключа (80 символов). |
static final int |
MAX_NAME_LENGTH |
Максимальная длина имени узла (80 символов). |
static final int |
MAX_VALUE_LENGTH |
Максимальная длина строки, разрешенной в качестве значения (8192 символов). |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Единственный конструктор. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract String |
absolutePath() |
Возвращает абсолютный путь к узлу настроек. |
abstract void |
addNodeChangeListener |
Регистрирует указанный слушатель для получения событий изменения узла для этого узла. |
abstract void |
addPreferenceChangeListener |
Регистрирует указанный слушатель для получения событий изменения настроек для этого узла настроек. |
abstract String[] |
childrenNames() |
Возвращает имена дочерних узлов этого узла настроек, относительно этого узла. |
abstract void |
clear() |
Удаляет все настройки (ассоциации ключ-значение) в этом узле настроек. |
abstract void |
exportNode |
Выводит на указанный выходной поток XML-документ, представляющий все настройки, содержащиеся в этом узле (но не его потомки). |
abstract void |
exportSubtree |
Выводит XML-документ, представляющий все настройки, содержащиеся в этом узле и всех его потомков. |
abstract void |
flush() |
Принудительно сохраняет любые изменения в содержимом этого узла настроек и его потомков в постоянном хранилище. |
abstract String |
get |
Возвращает значение, связанное с указанным ключом в этом узле настроек. |
abstract boolean |
getBoolean |
Возвращает булево значение, представленное строкой, связанной с указанным ключом в этом узле настроек. |
abstract byte[] |
getByteArray |
Возвращает значение типа byte array, представленное строкой, связанной с указанным ключом в этом узле настроек. |
abstract double |
getDouble |
Возвращает значение типа double, представленное строкой, связанной с указанным ключом в этом узле настроек. |
abstract float |
getFloat |
Возвращает значение типа float, представленное строкой, связанной с указанным ключом в этом узле настроек. |
abstract int |
getInt |
Возвращает значение типа int, представленное строкой, связанной с указанным ключом в этом узле настроек. |
abstract long |
getLong |
Возвращает значение типа long, представленное строкой, связанной с указанным ключом в этом узле настроек. |
static void |
importPreferences |
Импортирует все настройки, представленные XML-документом в указанном входном потоке. |
abstract boolean |
isUserNode() |
Возвращает true, если этот узел настроек находится в дереве пользовательских настроек, false, если он находится в системном дереве настроек. |
abstract String[] |
keys() |
Возвращает все ключи, имеющие связанное значение в этом узле настроек. |
abstract String |
name() |
Возвращает имя этого узла настроек, относительно его родительского узла. |
abstract Preferences |
node |
Возвращает узел настроек с указанным именем в том же дереве, что и этот узел, создавая его и любые его предков, если они еще не существуют. |
abstract boolean |
nodeExists |
Возвращает true, если узел настроек с указанным именем существует в том же дереве, что и этот узел. |
abstract Preferences |
parent() |
Возвращает родителя этого узла настроек или null, если это корень. |
abstract void |
put |
Связывает указанное значение с указанным ключом в этом узле настроек. |
abstract void |
putBoolean |
Связывает строку, представляющую указанное булево значение, с указанным ключом в этом узле настроек. |
abstract void |
putByteArray |
Связывает строку, представляющую указанный массив байтов, с указанным ключом в этом узле настроек. |
abstract void |
putDouble |
Связывает строку, представляющую указанное значение типа double, с указанным ключом в этом узле настроек. |
abstract void |
putFloat |
Связывает строку, представляющую указанное значение типа float, с указанным ключом в этом узле настроек. |
abstract void |
putInt |
Связывает строку, представляющую указанное значение типа int, с указанным ключом в этом узле настроек. |
abstract void |
putLong |
Связывает строку, представляющую указанное значение типа long, с указанным ключом в этом узле настроек. |
abstract void |
remove |
Удаляет значение, связанное с указанным ключом в этом узле настроек, если оно есть. |
abstract void |
removeNode() |
Удаляет этот узел настроек и все его потомки, делая недействительными любые настройки, содержащиеся в удаленных узлах. |
abstract void |
removeNodeChangeListener |
Удаляет указанный NodeChangeListener, чтобы он больше не получал событий изменения. |
abstract void |
removePreferenceChangeListener |
Удаляет указанного слушателя событий изменения настроек, чтобы он больше не получал событий изменения настроек. |
abstract void |
sync() |
Обеспечивает, что будущие чтения из этого узла настроек и его потомков будут отражать любые изменения, которые были внесены в постоянное хранилище (из любого виртуальной машины) до вызова %%%CODE_BLOCK_105%%. |
static Preferences |
systemNodeForPackage |
Возвращает узел настроек из системного дерева настроек, связанный (по соглашению) с пакетом указанного класса. |
static Preferences |
systemRoot() |
Возвращает корневой узел настроек для системы. |
abstract String |
toString() |
Возвращает строковое представление этого узла настроек, как если бы оно было вычислено выражением: (this.isUserNode() ? "User" :
"System") + " Preference Node: " + this.absolutePath(). |
static Preferences |
userNodeForPackage |
Возвращает узел настроек из дерева настроек текущего пользователя, связанный (по соглашению) с пакетом указанного класса. |
static Preferences |
userRoot() |
Возвращает корневой узел настроек для текущего пользователя. |
Подробное описание полей
MAX_KEY_LENGTH
public static final int MAX_KEY_LENGTH
- См. также:
MAX_VALUE_LENGTH
public static final int MAX_VALUE_LENGTH
- См. также:
MAX_NAME_LENGTH
public static final int MAX_NAME_LENGTH
- См. также:
Подробное описание конструкторов
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);
Этот прием исключает необходимость использования строки для описания узла предпочтений и уменьшает вероятность ошибки во время выполнения. (Если имя класса написано с ошибкой, это обычно приведет к ошибке компиляции.) Вызов этого метода приведет к созданию возвращаемого узла и его предков, если они еще не существуют. Если возвращаемый узел не существовал до этого вызова, этот узел и любые предки, созданные этим вызовом, не гарантированно станут постоянными до тех пор, пока метод flush не будет вызван на возвращаемом узле (или одном из его предков или потомков).
- Параметры:
-
c- класс, для пакета которого требуется узел предпочтений пользователя. - Возвращает:
- узел предпочтений пользователя, связанный с пакетом, членом которого является
c. - Исключения:
-
NullPointerException- еслиcравенnull. -
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);Этот прием исключает необходимость использования строки для описания узла предпочтений и уменьшает вероятность ошибки во время выполнения. (Если имя класса написано с ошибкой, это обычно приведет к ошибке компиляции.)
Вызов этого метода приведет к созданию возвращаемого узла и его предков, если они еще не существуют. Если возвращаемый узел не существовал до этого вызова, этот узел и любые предки, созданные этим вызовом, не гарантированно станут постоянными до тех пор, пока метод flush не будет вызван на возвращаемом узле (или одном из его предков или потомков).
- Параметры:
-
c- класс, для пакета которого требуется узел предпочтений системы. - Возвращает:
- узел предпочтений системы, связанный с пакетом, членом которого является
c. - Исключения:
-
NullPointerException- еслиcравенnull. -
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.lengthпревышаетMAX_VALUE_LENGTH. -
IllegalStateException- если этот узел (или предок) был удален методомremoveNode(). -
IllegalArgumentException- если ключ или значение содержат нулевой управляющий символ, код U+0000.
get
public abstract String get(String key, String def)
Некоторые реализации могут хранить значения по умолчанию в своих хранилищах. Если нет значения, связанного с указанным ключом, но есть такое хранимое значение по умолчанию, оно возвращается в приоритете над указанным значением по умолчанию.
- Параметры:
-
key- ключ, связанное значение которого должно быть возвращено. -
def- значение, которое должно быть возвращено, если в этом узле предпочтений нет значения, связанного сkey. - Возвращает:
- значение, связанное с
key, илиdef, если сkeyне связано значение, или доступ к хранилищу недоступен. - Исключения:
-
IllegalStateException- если этот узел (или предок) был удален методомremoveNode(). -
NullPointerException- еслиkeyравенnull. (Значениеnullдляdefразрешено.) -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000.
remove
public abstract void remove(String key)
Если данная реализация поддерживает сохраненные значения по умолчанию, и существует такое значение по умолчанию для указанного предпочтения, сохраненное значение по умолчанию будет «экспонировано» этим вызовом, в смысле, что оно будет возвращено последующим вызовом get.
- Параметры:
-
key- ключ, отображение которого должно быть удалено из узла предпочтений. - Исключения:
-
NullPointerException- еслиkeyравенnull. -
IllegalStateException- если этот узел (или предок) был удален методомremoveNode(). -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000.
clear
public abstract void clear() throws BackingStoreException
Если данная реализация поддерживает сохранённые значения по умолчанию, и этот узел в иерархии предпочтений содержит такие значения по умолчанию, то сохранённые значения по умолчанию будут «экспонированы» этим вызовом, в том смысле, что они будут возвращены последующими вызовами get.
- Исключение:
-
BackingStoreException- если данная операция не может быть завершена из-за сбоя в базовом хранилище или невозможности с ним взаимодействовать. -
IllegalStateException- если этот узел (или его предок) был удалён с помощью методаremoveNode(). - См. также:
putInt
public abstract void putInt(String key, int value)
Integer.toString(int). Этот метод предназначен для использования совместно с getInt(java.lang.String, int).- Параметры:
-
key- ключ, с которым будет связана строковая форма значения. -
value- значение, строковая форма которого будет связана с ключом. - Исключение:
-
NullPointerException- еслиkeyравноnull. -
IllegalArgumentException- еслиkey.length()превышаетMAX_KEY_LENGTH. -
IllegalStateException- если этот узел (или его предок) был удалён с помощью методаremoveNode(). -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000. - См. также:
getInt
public abstract int getInt(String key, int def)
Integer.parseInt(String). Возвращает указанное значение по умолчанию, если значение не связано с ключом, базовая система хранения недоступна или если Integer.parseInt(String) выбросит исключение NumberFormatException, если связанное значение было передано. Этот метод предназначен для использования совместно с putInt(java.lang.String, int). Если реализация поддерживает сохранённые значения по умолчанию и такое значение по умолчанию существует, доступно и может быть преобразовано в целое число с помощью Integer.parseInt, это целое число возвращается вместо указанного значения по умолчанию.
- Параметры:
-
key- ключ, связанное значение которого должно быть возвращено как целое число. -
def- значение по умолчанию, которое должно быть возвращено в том случае, если в этом узле предпочтений нет значения, связанного сkey, или связанное значение не может быть интерпретировано как целое число, или базовая система хранения недоступна. - Возвращает:
- целое значение, представленное строкой, связанной с
keyв этом узле предпочтений, илиdef, если связанного значения нет или оно не может быть интерпретировано как целое число. - Исключение:
-
IllegalStateException- если этот узел (или его предок) был удалён с помощью методаremoveNode(). -
NullPointerException- еслиkeyравноnull. -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000. - См. также:
putLong
public abstract void putLong(String key, long value)
Long.toString(long). Этот метод предназначен для использования совместно с getLong(java.lang.String, long).- Параметры:
-
key- ключ, с которым будет связана строковая форма значения. -
value- значение, строковая форма которого будет связана с ключом. - Исключение:
-
NullPointerException- еслиkeyравноnull. -
IllegalArgumentException- еслиkey.length()превышаетMAX_KEY_LENGTH. -
IllegalStateException- если этот узел (или его предок) был удалён с помощью методаremoveNode(). -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000. - См. также:
getLong
public abstract long getLong(String key, long def)
Long.parseLong(String). Возвращает указанное значение по умолчанию, если значение не связано с ключом, базовая система хранения недоступна или если Long.parseLong(String) выбросит исключение NumberFormatException, если связанное значение было передано. Этот метод предназначен для использования совместно с putLong(java.lang.String, long). Если реализация поддерживает сохранённые значения по умолчанию и такое значение по умолчанию существует, доступно и может быть преобразовано в long с помощью Long.parseLong, это значение long возвращается вместо указанного значения по умолчанию.
- Параметры:
-
key- ключ, связанное значение которого должно быть возвращено как long. -
def- значение по умолчанию, которое должно быть возвращено в том случае, если в этом узле предпочтений нет значения, связанного сkey, или связанное значение не может быть интерпретировано как long, или базовая система хранения недоступна. - Возвращает:
- значение типа long, представленное строкой, связанной с
keyв этом узле предпочтений, илиdef, если связанного значения нет или оно не может быть интерпретировано как long. - Исключение:
-
IllegalStateException- если этот узел (или его предок) был удалён с помощью методаremoveNode(). -
NullPointerException- еслиkeyравноnull. -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000. - См. также:
putBoolean
public abstract void putBoolean(String key, boolean value)
"true", если значение true, и "false", если значение false. Этот метод предназначен для использования совместно с getBoolean(java.lang.String, boolean).- Параметры:
-
key- ключ, с которым будет связана строковая форма значения. -
value- значение, строковая форма которого будет связана с ключом. - Исключение:
-
NullPointerException- еслиkeyравноnull. -
IllegalArgumentException- еслиkey.length()превышаетMAX_KEY_LENGTH. -
IllegalStateException- если этот узел (или его предок) был удалён с помощью методаremoveNode(). -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000. - См. также:
getBoolean
public abstract boolean getBoolean(String key, boolean def)
"true", представляющая true, и "false", представляющая false. Регистр игнорируется, поэтому, например, "TRUE" и "False" также допустимы. Этот метод предназначен для использования совместно с putBoolean(java.lang.String, boolean). Возвращает указанное значение по умолчанию, если значение не связано с ключом, базовая система хранения недоступна или связанное значение не является ни "true", ни "false", не учитывая регистр.
Если реализация поддерживает сохранённые значения по умолчанию и такое значение по умолчанию существует и доступно, оно используется вместо указанного значения по умолчанию, если сохранённое значение по умолчанию не равно "true" или "false", не учитывая регистр, в этом случае используется указанное значение по умолчанию.
- Параметры:
-
key- ключ, связанное значение которого должно быть возвращено как boolean. -
def- значение по умолчанию, которое должно быть возвращено в том случае, если в этом узле предпочтений нет значения, связанного сkey, или связанное значение не может быть интерпретировано как boolean, или базовая система хранения недоступна. - Возвращает:
- булево значение, представленное строкой, связанной с
keyв этом узле предпочтений, илиdef, если связанного значения нет или оно не может быть интерпретировано как boolean. - Исключение:
-
IllegalStateException- если этот узел (или его предок) был удалён с помощью методаremoveNode(). -
NullPointerException- еслиkeyравноnull. -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000. - См. также:
putFloat
public abstract void putFloat(String key, float value)
Float.toString(float). Этот метод предназначен для совместного использования с getFloat(java.lang.String, float).- Parameters:
-
key- ключ, с которым будет ассоциирована строковая форма значения. -
value- значение, строковая форма которого должна быть ассоциирована с ключом. - Throws:
-
NullPointerException- еслиkeyявляетсяnull. -
IllegalArgumentException- еслиkey.length()превышаетMAX_KEY_LENGTH. -
IllegalStateException- если этот узел (или предковый) был удалён методомremoveNode(). -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000. - See Also:
getFloat
public abstract float getFloat(String key, float def)
Float.parseFloat(String). Возвращает указанное значение по умолчанию, если нет значения, связанного с ключом, хранилище недоступно или если Float.parseFloat(String) вызовет NumberFormatException, если ассоциированное значение было бы передано. Этот метод предназначен для совместного использования с putFloat(java.lang.String, float). Если реализация поддерживает хранимые значения по умолчанию и такое значение существует, доступно и может быть преобразовано в число с плавающей точкой с помощью Float.parseFloat, это число с плавающей точкой возвращается вместо указанного значения по умолчанию.
- Parameters:
-
key- ключ, связанное значение которого должно быть возвращено как число с плавающей точкой. -
def- значение, которое должно быть возвращено в том случае, если в этом узле настроек нет значения, связанного сkey, или ассоциированное значение не может быть интерпретировано как число с плавающей точкой, или хранилище недоступно. - Returns:
- значение с плавающей точкой, представленное строкой, связанной с
keyв этом узле настроек, илиdef, если ассоциированное значение не существует или не может быть интерпретировано как число с плавающей точкой. - Throws:
-
IllegalStateException- если этот узел (или предковый) был удалён методомremoveNode(). -
NullPointerException- еслиkeyявляетсяnull. -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000. - See Also:
putDouble
public abstract void putDouble(String key, double value)
Double.toString(double). Этот метод предназначен для совместного использования с getDouble(java.lang.String, double).- Parameters:
-
key- ключ, с которым будет ассоциирована строковая форма значения. -
value- значение, строковая форма которого должна быть ассоциирована с ключом. - Throws:
-
NullPointerException- еслиkeyявляетсяnull. -
IllegalArgumentException- еслиkey.length()превышаетMAX_KEY_LENGTH. -
IllegalStateException- если этот узел (или предковый) был удалён методомremoveNode(). -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000. - See Also:
getDouble
public abstract double getDouble(String key, double def)
Double.parseDouble(String). Возвращает указанное значение по умолчанию, если нет значения, связанного с ключом, хранилище недоступно или если Double.parseDouble(String) вызовет NumberFormatException, если ассоциированное значение было бы передано. Этот метод предназначен для совместного использования с putDouble(java.lang.String, double). Если реализация поддерживает хранимые значения по умолчанию и такое значение существует, доступно и может быть преобразовано в число с двойной точностью с помощью Double.parseDouble, это число с двойной точностью возвращается вместо указанного значения по умолчанию.
- Parameters:
-
key- ключ, связанное значение которого должно быть возвращено как число с двойной точностью. -
def- значение, которое должно быть возвращено в том случае, если в этом узле настроек нет значения, связанного сkey, или ассоциированное значение не может быть интерпретировано как число с двойной точностью, или хранилище недоступно. - Returns:
- значение с двойной точностью, представленное строкой, связанной с
keyв этом узле настроек, илиdef, если ассоциированное значение не существует или не может быть интерпретировано как число с двойной точностью. - Throws:
-
IllegalStateException- если этот узел (или предковый) был удалён методомremoveNode(). -
NullPointerException- еслиkeyявляетсяnull. -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000. - See Also:
putByteArray
public abstract void putByteArray(String key, byte[] value)
MAX_VALUE_LENGTH, чтобы длина закодированной в Base64 строки не превысила MAX_VALUE_LENGTH. Этот метод предназначен для совместного использования с getByteArray(java.lang.String, byte[]).- Parameters:
-
key- ключ, с которым будет ассоциирована строковая форма значения. -
value- значение, строковая форма которого должна быть ассоциирована с ключом. - Throws:
-
NullPointerException- если ключ или значение являютсяnull. -
IllegalArgumentException- если длина ключа превышает MAX_KEY_LENGTH, или если длина значения превышает MAX_VALUE_LENGTH*3/4. -
IllegalStateException- если этот узел (или предковый) был удалён методомremoveNode(). -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000. - See Also:
getByteArray
public abstract byte[] getByteArray(String key, byte[] def)
putByteArray(java.lang.String, byte[]). Возвращает указанное значение по умолчанию, если нет значения, связанного с ключом, хранилище недоступно или ассоциированное значение не является валидным массивом байтов, закодированных в Base64 (как определено выше).
Если реализация поддерживает хранимые значения по умолчанию и такое значение существует и доступно, оно используется вместо указанного значения по умолчанию, за исключением случаев, когда хранимое значение по умолчанию не является валидным массивом байтов, закодированным в Base64 (как определено выше), в этом случае используется указанное значение по умолчанию.
- Parameters:
-
key- ключ, связанное значение которого должно быть возвращено как массив байтов. -
def- значение, которое должно быть возвращено в том случае, если в этом узле настроек нет значения, связанного сkey, или ассоциированное значение не может быть интерпретировано как массив байтов, или хранилище недоступно. - Returns:
- массив байтов, представленный строкой, связанной с
keyв этом узле настроек, илиdef, если ассоциированное значение не существует или не может быть интерпретировано как массив байтов. - Throws:
-
IllegalStateException- если этот узел (или предковый) был удалён методомremoveNode(). -
NullPointerException- еслиkeyявляетсяnull. (Значениеnullдляdefразрешено.) -
IllegalArgumentException- если ключ содержит нулевой управляющий символ, код U+0000. - See Also:
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)
('/')) интерпретируются относительно этого узла настроек. Если возвращаемый узел не существовал до этого вызова, этот узел и любые созданные этим вызовом предки не гарантируют своего постоянного существования до тех пор, пока метод flush не будет вызван на возвращённом узле (или на одном из его предков или потомков).
- Параметры:
-
pathName- имя пути узла настроек, который необходимо вернуть. - Возвращает:
- указанный узел настроек.
- Бросает:
-
IllegalArgumentException- если имя пути некорректно (например, содержит несколько последовательных символов косой черты или заканчивается символом косой черты и имеет длину более одного символа). -
NullPointerException- если имя путиnull. -
IllegalStateException- если этот узел (или какой-либо его предок) был удалён методомremoveNode(). - См. также:
nodeExists
public abstract boolean nodeExists(String pathName) throws BackingStoreException
('/')) интерпретируются относительно этого узла настроек. Если этот узел (или какой-либо его предок) уже был удалён методом removeNode(), то вызов этого метода с именем пути "", является допустимым; он вернёт false. Таким образом, выражение p.nodeExists("") может использоваться для проверки того, был ли p удалён.
- Параметры:
-
pathName- имя пути узла, существование которого нужно проверить. - Возвращает:
- true, если указанный узел существует.
- Бросает:
-
BackingStoreException- если данная операция не может быть завершена из-за сбоя в хранилище или невозможности с ним связаться. -
IllegalArgumentException- если имя пути некорректно (например, содержит несколько последовательных символов косой черты или заканчивается символом косой черты и имеет длину более одного символа). -
NullPointerException- если имя путиnull. -
IllegalStateException- если этот узел (или какой-либо его предок) был удалён методомremoveNode()иpathNameне является пустой строкой ("").
removeNode
public abstract void removeNode() throws BackingStoreException
name(), absolutePath(), isUserNode(), flush() или nodeExists("") на соответствующем Preferences экземпляре, завершится сбоем с 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
Реализации могут произвольно записывать изменения в постоянное хранилище в любое время. Им не нужно ждать вызова этого метода.
При вызове flush на только что созданном узле, он становится постоянным, как и любые предки (и потомки), которые ещё не стали постоянными. Однако, изменения значений настроек в предках не гарантируются, чтобы стать постоянными.
Если этот метод вызывается на узле, который был удалён методом removeNode(), flushSpi() вызывается на этом узле, но не на других.
- Бросает:
-
BackingStoreException- если данная операция не может быть завершена из-за сбоя в хранилище или невозможности с ним связаться. - См. также:
sync
public abstract void sync() throws BackingStoreException
sync. Как побочный эффект, принудительно записывает все изменения в содержимом этого узла настроек и его потомков в постоянное хранилище, как если бы метод flush был вызван на этом узле.- Бросает:
-
BackingStoreException- если данная операция не может быть завершена из-за сбоя в хранилище или невозможности с ним связаться. -
IllegalStateException- если этот узел (или какой-либо его предок) был удалён методомremoveNode(). - См. также:
addPreferenceChangeListener
public abstract void addPreferenceChangeListener(PreferenceChangeListener pcl)
removeNode(), который генерирует событие изменения узла. События изменения настроек генерируются методом clear.) Гарантируется, что события будут генерироваться только для изменений, сделанных в той же JVM, что и зарегистрированный обработчик, хотя некоторые реализации могут генерировать события для изменений, сделанных вне этой JVM. События могут генерироваться до того, как изменения станут постоянными. События не генерируются при модификации настроек в потомках этого узла; для получения таких событий вызывающий код должен зарегистрироваться у каждого потомка.
- Parameters:
-
pcl- Обработчик изменений настроек для добавления. - Throws:
-
NullPointerException- еслиpclравно null. -
IllegalStateException- если этот узел (или его предшественник) был удалён методомremoveNode(). - See Also:
removePreferenceChangeListener
public abstract void removePreferenceChangeListener(PreferenceChangeListener pcl)
- Parameters:
-
pcl- Обработчик изменений настроек для удаления. - Throws:
-
IllegalArgumentException- еслиpclне был зарегистрированным обработчиком изменений настроек в этом узле. -
IllegalStateException- если этот узел (или его предшественник) был удалён методомremoveNode(). - See Also:
addNodeChangeListener
public abstract void addNodeChangeListener(NodeChangeListener ncl)
removeNode() приводит к нескольким событиям изменения узла, по одному для каждого узла в поддереве, корень которого удалён.) Гарантируется, что события будут генерироваться только для изменений, сделанных в той же JVM, что и зарегистрированный обработчик, хотя некоторые реализации могут генерировать события для изменений, сделанных вне этой JVM. События могут генерироваться до того, как изменения станут постоянными. События не генерируются при добавлении или удалении косвенных потомков этого узла; для получения таких событий вызывающий код должен зарегистрироваться у каждого потомка.
Невозможно дать гарантии относительно создания узлов. Поскольку узлы создаются неявно при доступе, для реализации может быть невозможным определить, существовал ли дочерний узел в исходном хранилище до доступа (например, потому что исходное хранилище недоступно или кэшированная информация устарела). В таких случаях реализации не обязаны генерировать события изменения узла и не запрещается их генерировать.
- Parameters:
-
ncl- ОбработчикNodeChangeListenerдля добавления. - Throws:
-
NullPointerException- еслиnclравно null. -
IllegalStateException- если этот узел (или его предшественник) был удалён методомremoveNode(). - See Also:
removeNodeChangeListener
public abstract void removeNodeChangeListener(NodeChangeListener ncl)
NodeChangeListener, чтобы он больше не получал события изменения.- Parameters:
-
ncl- ОбработчикNodeChangeListenerдля удаления. - Throws:
-
IllegalArgumentException- еслиnclне был зарегистрированным обработчикомNodeChangeListenerв этом узле. -
IllegalStateException- если этот узел (или его предшественник) был удалён методомremoveNode(). - See Also:
exportNode
public abstract void exportNode(OutputStream os) throws IOException, BackingStoreException
XML-документ будет иметь следующее объявление DOCTYPE:
<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
Будет использовано кодирование UTF-8. Этот метод является исключением из общего правила, что результаты одновременного выполнения нескольких методов в этом классе эквивалентны некоторому последовательному выполнению. Если настройки в этом узле изменяются одновременно с вызовом этого метода, экспортированные настройки представляют собой "размытый снимок" настроек, содержащихся в узле; некоторые из одновременных модификаций могут быть отражены в экспортированных данных, а другие — нет.
- Parameters:
-
os- поток вывода, в который выводить XML-документ. - Throws:
-
IOException- если запись в указанный поток вывода приводит кIOException. -
BackingStoreException- если данные настроек не могут быть считаны из хранилища. -
IllegalStateException- если этот узел (или его предшественник) был удалён методомremoveNode(). - See Also:
exportSubtree
public abstract void exportSubtree(OutputStream os) throws IOException, BackingStoreException
XML-документ будет иметь следующее объявление DOCTYPE:
<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
Будет использовано кодирование UTF-8. Этот метод является исключением из общего правила, что результаты одновременного выполнения нескольких методов в этом классе эквивалентны некоторому последовательному выполнению. Если настройки или узлы в поддереве, укоренённом в этом узле, изменяются одновременно с вызовом этого метода, экспортированные настройки представляют собой "размытый снимок" поддерева; некоторые из одновременных модификаций могут быть отражены в экспортированных данных, а другие — нет.
- Parameters:
-
os- поток вывода, в который выводить XML-документ. - Throws:
-
IOException- если запись в указанный поток вывода приводит кIOException. -
BackingStoreException- если данные настроек не могут быть считаны из хранилища. -
IllegalStateException- если этот узел (или его предшественник) был удалён методомremoveNode(). - See Also:
importPreferences
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).
- Parameters:
-
is- поток ввода, из которого читать XML-документ. - Throws:
-
IOException- если чтение из указанного потока ввода приводит кIOException. -
InvalidPreferencesFormatException- Данные в потоке ввода не являются допустимым XML-документом с требуемым типом документа. -
SecurityException- Если менеджер безопасности присутствует и отказывается отRuntimePermission("preferences"). - See Also:
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.prefs/java/util/prefs/Preferences.html