Spec-Zone.ru › OpenJDK 27

Класс Properties

java.lang.Object
java.util.Dictionary<Object,Object>
java.util.Hashtable<Object,Object>
java.util.Properties
Все реализуемые интерфейсы:
Serializable, Cloneable, Map<Object,Object>
Прямые известные подклассы:
Provider
public class Properties extends Hashtable<Object,Object>
Класс Properties представляет собой постоянный набор свойств. Properties можно сохранить в поток или загрузить из потока. Каждый ключ и соответствующее ему значение в списке свойств являются строками.

Список свойств может содержать другой список свойств в качестве «значений по умолчанию»; поиск во втором списке свойств выполняется, если ключ свойства не найден в исходном списке свойств.

Поскольку Properties наследует Hashtable, к объекту Properties можно применять методы put и putAll. Настоятельно не рекомендуется использовать их, поскольку они позволяют вызывающему коду добавлять записи, ключи или значения которых не являются Strings. Вместо этого следует использовать метод setProperty. Если для объекта Properties, «содержащего некорректные данные» и имеющего ключ или значение, не являющиеся String, вызвать метод store, save или list, вызов завершится ошибкой. Аналогично, вызов метода propertyNames завершится ошибкой, если он будет вызван для объекта Properties, «содержащего некорректные данные» и имеющего ключ, не являющийся String.

Итераторы, возвращаемые методом iterator для «представлений коллекций» этого класса (то есть entrySet(), keySet() и values()), могут не завершаться сбоем при модификации коллекции (в отличие от реализации Hashtable). Эти итераторы гарантированно обходят элементы, существовавшие на момент создания, ровно один раз; при этом они могут (но не обязаны) отражать изменения, внесённые после создания.

Методы load(Reader) / store(Writer, String) загружают свойства из символьного потока и сохраняют их в символьном потоке в простом построчном формате, описанном ниже. Методы load(InputStream) / store(OutputStream, String) работают так же, как пара load(Reader)/store(Writer, String), за исключением того, что входной/выходной поток использует кодировку ISO 8859-1. Символы, которые нельзя напрямую представить в этой кодировке, можно записать с помощью escape-последовательностей Unicode, определённых в разделе §3.3 Спецификации языка Java; в escape-последовательности допускается только один символ 'u'.

Методы loadFromXML(InputStream) и storeToXML(OutputStream, String, String) загружают и сохраняют свойства в простом формате XML. По умолчанию используется кодировка UTF-8, однако при необходимости можно указать другую кодировку. Реализации должны поддерживать UTF-8 и UTF-16 и могут поддерживать другие кодировки. Документ свойств XML имеет следующее объявление DOCTYPE:

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
Обратите внимание, что системный URI (http://java.sun.com/dtd/properties.dtd) не используется при экспорте или импорте свойств; он служит лишь строкой для уникальной идентификации DTD, который имеет вид:
   <?xml version="1.0" encoding="UTF-8"?>

   <!-- DTD for properties -->

   <!ELEMENT properties ( comment?, entry* ) >

   <!ATTLIST properties version CDATA #FIXED "1.0">

   <!ELEMENT comment (#PCDATA) >

   <!ELEMENT entry (#PCDATA) >

   <!ATTLIST entry key CDATA #REQUIRED>

Этот класс является потокобезопасным: несколько потоков могут совместно использовать один объект Properties без внешней синхронизации.

Примечание к API:
Класс Properties не наследует концепцию коэффициента загрузки от своего суперкласса Hashtable.
С версии:
1.0
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
protected Properties defaults
Список свойств, содержащий значения по умолчанию для всех ключей, не найденных в этом списке свойств.

Краткое описание конструкторов

Конструктор Описание
Properties()
Создаёт пустой список свойств без значений по умолчанию.
Properties(int initialCapacity)
Создаёт пустой список свойств без значений по умолчанию и с начальным размером, позволяющим вместить указанное количество элементов без необходимости динамического изменения размера.
Properties(Properties defaults)
Создаёт пустой список свойств с указанными значениями по умолчанию.

Краткое описание методов

Модификатор и тип Метод Описание
String getProperty(String key)
Выполняет поиск свойства с указанным ключом в этом списке свойств.
String getProperty(String key, String defaultValue)
Выполняет поиск свойства с указанным ключом в этом списке свойств.
void list(PrintStream out)
Выводит этот список свойств в указанный выходной поток.
void list(PrintWriter out)
Выводит этот список свойств в указанный выходной поток.
void load(InputStream inStream)
Читает список свойств (пары «ключ — элемент») из входного байтового потока.
void load(Reader reader)
Читает список свойств (пары «ключ — элемент») из входного символьного потока в простом построчном формате.
void loadFromXML(InputStream in)
Загружает в эту таблицу свойств все свойства, представленные XML-документом в указанном входном потоке.
Enumeration<?> propertyNames()
Возвращает перечисление всех ключей этого списка свойств, включая уникальные ключи из списка свойств по умолчанию, если ключ с таким же именем ещё не был найден в основном списке свойств.
void save(OutputStream out, String comments)
Устарел.
Этот метод не выбрасывает IOException, если при сохранении списка свойств возникает ошибка ввода-вывода.
Object setProperty(String key, String value)
Вызывает метод Hashtable put.
void store(OutputStream out, String comments)
Записывает этот список свойств (пары «ключ — элемент») из таблицы Properties в выходной поток в формате, подходящем для загрузки в таблицу Properties с помощью метода load(InputStream).
void store(Writer writer, String comments)
Записывает этот список свойств (пары «ключ — элемент») из таблицы Properties в выходной символьный поток в формате, подходящем для использования метода load(Reader).
void storeToXML(OutputStream os, String comment)
Создаёт XML-документ, представляющий все свойства, содержащиеся в этой таблице.
void storeToXML(OutputStream os, String comment, String encoding)
Создаёт XML-документ, представляющий все свойства, содержащиеся в этой таблице, с использованием указанной кодировки.
void storeToXML(OutputStream os, String comment, Charset charset)
Создаёт XML-документ, представляющий все свойства, содержащиеся в этой таблице, с использованием указанной кодировки.
Set<String> stringPropertyNames()
Возвращает неизменяемое множество ключей из этого списка свойств, в котором ключи и соответствующие им значения являются строками; оно также включает уникальные ключи из списка свойств по умолчанию, если ключ с таким же именем ещё не был найден в основном списке свойств.

Методы, объявленные в классе Hashtable

clear, clone, compute, computeIfAbsent, computeIfPresent, contains, containsKey, containsValue, elements, entrySet, equals, get, hashCode, isEmpty, keys, keySet, merge, put, putAll, rehash, remove, size, toString, values
Модификатор и тип Метод Описание
void clear()
Очищает эту хеш-таблицу, удаляя все ключи.
Object clone()
Создаёт поверхностную копию этой хеш-таблицы.
Object compute(Object key, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
Пытается вычислить соответствие для указанного ключа и текущего сопоставленного ему значения или null, если соответствие отсутствует (необязательная операция).
Object computeIfAbsent(Object key, Function<? super Object, ? extends Object> mappingFunction)
Если для указанного ключа ещё не задано значение (или ему сопоставлено null), пытается вычислить его с помощью заданной функции сопоставления и добавляет в эту карту, если результат не равен null (необязательная операция).
Object computeIfPresent(Object key, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
Если для указанного ключа существует ненулевое значение, пытается вычислить новое соответствие на основе ключа и текущего сопоставленного ему значения (необязательная операция).
boolean contains(Object value)
Проверяет, сопоставлен ли какой-либо ключ в этой хеш-таблице указанному значению.
boolean containsKey(Object key)
Проверяет, является ли указанный объект ключом в этой хеш-таблице.
boolean containsValue(Object value)
Возвращает true, если эта хеш-таблица сопоставляет одно или несколько значений с этим ключом.
Enumeration<Object> elements()
Возвращает перечисление значений в этой хеш-таблице.
Set<Map.Entry<Object,Object>> entrySet()
Возвращает представление Set соответствий, содержащихся в этой карте.
boolean equals(Object o)
Сравнивает указанный объект с этой картой на равенство согласно определению интерфейса Map.
Object get(Object key)
Возвращает значение, сопоставленное указанному ключу, или null, если эта карта не содержит соответствия для ключа.
int hashCode()
Возвращает хеш-код этой карты согласно определению интерфейса Map.
boolean isEmpty()
Проверяет, сопоставляет ли эта хеш-таблица какие-либо ключи со значениями.
Enumeration<Object> keys()
Возвращает перечисление ключей в этой хеш-таблице.
Set<Object> keySet()
Возвращает представление Set ключей, содержащихся в этой карте.
Object merge(Object key, Object value, BiFunction<? super Object, ? super Object, ? extends Object> remappingFunction)
Если указанный ключ ещё не связан со значением или связан со значением null, связывает его с заданным ненулевым значением (необязательная операция).
Object put(Object key, Object value)
Сопоставляет указанный key с указанным value в этой хеш-таблице.
void putAll(Map<? extends Object, ? extends Object> t)
Копирует все соответствия из указанной карты в эту хеш-таблицу.
protected void rehash()
Увеличивает ёмкость и реорганизует внутреннюю структуру этой хеш-таблицы, чтобы эффективнее размещать и обрабатывать её записи.
Object remove(Object key)
Удаляет ключ (и соответствующее ему значение) из этой хеш-таблицы.
int size()
Возвращает количество ключей в этой хеш-таблице.
String toString()
Возвращает строковое представление объекта Hashtable в виде набора записей, заключённых в фигурные скобки и разделённых символами ASCII « , » (запятая и пробел).
Collection<Object> values()
Возвращает представление Collection значений, содержащихся в этой карте.

Методы, объявленные в классе Object

finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected void finalize()
Устарел, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация признана устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения объекта Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или прерывания потока.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или прерывания потока, либо до истечения указанного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или прерывания потока, либо до истечения указанного интервала реального времени.

Методы, объявленные в интерфейсе Map

forEach, getOrDefault, putIfAbsent, remove, replace, replace, replaceAll
Модификатор и тип Метод Описание
default void forEach(BiConsumer<? super Object, ? super Object> action)
Выполняет заданное действие для каждой записи этой карты, пока не будут обработаны все записи или действие не выбросит исключение.
default Object getOrDefault(Object key, Object defaultValue)
Возвращает значение, сопоставленное указанному ключу, или defaultValue, если эта карта не содержит соответствия для ключа.
default Object putIfAbsent(Object key, Object value)
Если указанный ключ ещё не связан со значением (или ему сопоставлено null), связывает его с заданным значением и возвращает null; в противном случае возвращает текущее значение (необязательная операция).
default boolean remove(Object key, Object value)
Удаляет запись для указанного ключа, только если в данный момент ему сопоставлено указанное значение (необязательная операция).
default Object replace(Object key, Object value)
Заменяет запись для указанного ключа, только если в данный момент ему сопоставлено какое-либо значение (необязательная операция).
default boolean replace(Object key, Object oldValue, Object newValue)
Заменяет запись для указанного ключа, только если в данный момент ему сопоставлено указанное значение (необязательная операция).
default void replaceAll(BiFunction<? super Object, ? super Object, ? extends Object> function)
Заменяет значение каждой записи результатом вызова заданной функции для этой записи, пока не будут обработаны все записи или функция не выбросит исключение (необязательная операция).

Подробное описание полей

defaults

protected volatile Properties defaults
Список свойств, содержащий значения по умолчанию для любых ключей, не найденных в этом списке свойств.

Подробное описание конструкторов

Properties

public Properties()
Создает пустой список свойств без значений по умолчанию.
Примечание по реализации:
Начальная емкость объекта Properties, созданного этим конструктором, не определена.

Properties

public Properties(int initialCapacity)
Создает пустой список свойств без значений по умолчанию и с начальным размером, позволяющим вместить указанное количество элементов без необходимости динамического изменения размера.
Параметры:
initialCapacity — размер Properties будет рассчитан так, чтобы вместить указанное количество элементов
Исключения:
IllegalArgumentException — если начальная емкость меньше нуля.
С версии:
10

Properties

public Properties(Properties defaults)
Создает пустой список свойств с указанными значениями по умолчанию.
Примечание по реализации:
Начальная емкость объекта Properties, созданного этим конструктором, не определена.
Параметры:
defaults — значения по умолчанию.

Подробное описание методов

setProperty

public Object setProperty(String key, String value)
Вызывает метод Hashtable put. Предоставлен для параллелизма с методом getProperty. Обеспечивает использование строк в качестве ключей и значений свойств. Возвращаемое значение — результат вызова Hashtable метода put.
Параметры:
key — ключ, который нужно поместить в этот список свойств.
value — значение, соответствующее key.
Возвращает:
предыдущее значение указанного ключа в этом списке свойств или null, если такого значения не было.
С версии:
1.2
См. также:
  • getProperty(String)

load

public void load(Reader reader) throws IOException
Читает список свойств (пары ключей и элементов) из входного потока символов в простом построчном формате.

Свойства обрабатываются построчно. Существуют два типа строк: естественные строки и логические строки. Естественная строка определяется как строка символов, завершающаяся набором символов окончания строки (\n, \r или \r\n) либо концом потока. Естественная строка может быть пустой строкой, строкой-комментарием либо содержать всю пару ключ—элемент или ее часть. Логическая строка содержит все данные пары ключ—элемент; она может занимать несколько смежных естественных строк, если последовательность символов окончания строки экранирована символом обратной косой черты \. Обратите внимание, что строку-комментарий нельзя продолжить таким образом: каждая естественная строка-комментарий должна иметь собственный индикатор комментария, как описано ниже. Строки считываются из входных данных до достижения конца потока.

Естественная строка, содержащая только пробельные символы, считается пустой и игнорируется. Строка-комментарий начинается с ASCII-символа '#' или '!', который является ее первым непробельным символом; строки-комментарии также игнорируются и не содержат сведений о ключах и элементах. Помимо символов окончания строки, в этом формате пробельными считаются символы пробела (' ', '\u0020'), табуляции ('\t', '\u0009') и перевода страницы ('\f', '\u000C').

Если логическая строка занимает несколько естественных строк, экранирующая последовательность обратной косой черты перед символами окончания строки, сами символы окончания строки и любые пробельные символы в начале следующей строки не влияют на значения ключа или элемента. В дальнейшей части описания разбора ключей и элементов (при загрузке) предполагается, что все символы, составляющие ключ и элемент, находятся в одной естественной строке после удаления символов продолжения строки. Обратите внимание: недостаточно проверить только символ перед последовательностью окончания строки, чтобы определить, экранирована ли она; для экранирования необходимо нечетное количество смежных обратных косых черт. Поскольку входные данные обрабатываются слева направо, ненулевое четное число 2n смежных обратных косых черт перед символом окончания строки (или в другом месте) кодирует n обратных косых черт после обработки экранирования.

Ключ содержит все символы строки, начиная с первого непробельного символа и до первого неэкранированного символа '=', ':' или пробельного символа, не являющегося символом окончания строки, но не включая его. Все эти символы завершения ключа можно включить в ключ, экранировав их предшествующим символом обратной косой черты; например,

\:\=

будет двухсимвольным ключом ":=". Символы окончания строки можно включить с помощью управляющих последовательностей \r и \n. Все пробельные символы после ключа пропускаются; если первый непробельный символ после ключа — '=' или ':', он игнорируется, а все пробельные символы после него также пропускаются. Все оставшиеся символы строки становятся частью соответствующей строки элемента; если символов не осталось, элементом является пустая строка "". После определения исходных последовательностей символов, составляющих ключ и элемент, выполняется обработка экранирования, описанная выше.

Например, каждая из следующих трех строк задает ключ "Truth" и соответствующее значение элемента "Beauty":

Truth = Beauty
 Truth:Beauty
Truth                    :Beauty
Другой пример: следующие три строки задают одно свойство:
fruits                           apple, banana, pear, \
                                 cantaloupe, watermelon, \
                                 kiwi, mango
Ключ — "fruits", а соответствующий элемент:
"apple, banana, pear, cantaloupe, watermelon, kiwi, mango"
Обратите внимание, что перед каждым \ стоит пробел, поэтому в конечном результате после каждой запятой будет пробел; \, символ окончания строки и начальные пробельные символы строки-продолжения просто удаляются и не заменяются одним или несколькими другими символами.

В качестве третьего примера строка:

cheeses
задает ключ "cheeses" и пустую строку "" в качестве соответствующего элемента.

Символы в ключах и элементах можно представить управляющими последовательностями, подобными используемым в символьных и строковых литералах (см. разделы §3.3 и §3.10.6 Спецификации языка Java). Отличия от управляющих последовательностей символов и Unicode-последовательностей, используемых для символов и строк, таковы:

  • Восьмеричные управляющие последовательности не распознаются.
  • Последовательность символов \b не представляет символ возврата на одну позицию.
  • Метод не считает символ обратной косой черты \ перед недопустимым управляющим символом ошибкой; обратная косая черта просто отбрасывается. Например, в строке Java последовательность "\z" вызвала бы ошибку компиляции. В отличие от этого, данный метод просто отбрасывает обратную косую черту. Поэтому этот метод считает последовательность из двух символов "\b" эквивалентной одному символу 'b'.
  • Для одинарных и двойных кавычек экранирование не требуется; однако, согласно приведенному выше правилу, символы одинарной и двойной кавычки, перед которыми стоит обратная косая черта, по-прежнему дают соответственно символы одинарной и двойной кавычки.
  • В управляющей последовательности Unicode допускается только один символ «u».

Указанный поток остается открытым после возврата этого метода.

Параметры:
reader — входной поток символов.
Исключения:
IOException — если при чтении из входного потока произошла ошибка.
IllegalArgumentException — если во входных данных обнаружена некорректная управляющая последовательность Unicode.
NullPointerException — если reader равно null.
С версии:
1.6

load

public void load(InputStream inStream) throws IOException
Читает список свойств (пары ключей и элементов) из входного байтового потока. Входной поток имеет простой построчный формат, описанный в load(Reader); предполагается, что используется кодировка символов ISO 8859-1, то есть каждый байт соответствует одному символу Latin1. Символы, отсутствующие в Latin1, а также некоторые специальные символы представляются в ключах и элементах с помощью Unicode-последовательностей, определенных в разделе §3.3 Спецификации языка Java.

Указанный поток остается открытым после возврата этого метода.

Параметры:
inStream — входной поток.
Исключения:
IOException — если при чтении из входного потока произошла ошибка.
IllegalArgumentException — если входной поток содержит некорректную управляющую последовательность Unicode.
NullPointerException — если inStream равно null.
С версии:
1.2

save

@Deprecated public void save(OutputStream out, String comments)
Устарело.
Этот метод не выбрасывает IOException, если при сохранении списка свойств происходит ошибка ввода-вывода. Для сохранения списка свойств рекомендуется использовать метод store(OutputStream out, String comments) или метод storeToXML(OutputStream os, String comment).
Вызывает метод store(OutputStream out, String comments) и подавляет выброшенные исключения IOException.
Параметры:
out — выходной поток.
comments — описание списка свойств.
Исключения:
ClassCastException — если этот объект Properties содержит ключи или значения, не являющиеся Strings.

store

public void store(Writer writer, String comments) throws IOException
Записывает этот список свойств (пары ключей и элементов) из таблицы Properties в выходной поток символов в формате, пригодном для использования метода load(Reader).

Свойства из таблицы значений по умолчанию этой таблицы Properties (если она есть) этим методом не записываются.

Если аргумент comments не равен null, в выходной поток сначала записываются символ ASCII #, строка комментария и разделитель строк. Таким образом, comments может служить идентифицирующим комментарием. Любой символ перевода строки (\n), возврата каретки (\r) или возврата каретки, за которым сразу следует перевод строки (\r\n), в комментарии заменяется на line separator; если следующий символ в комментарии не является символом # или символом !, после этого разделителя строк записывается символ ASCII #.

Если свойство java.properties.date задано в командной строке и не является пустым (согласно методу String.isEmpty), строка комментария записывается следующим образом. Сначала записывается символ #, затем содержимое свойства, а после него — разделитель строк. Символы окончания строки в значении системного свойства обрабатываются так же, как указано выше для аргумента comments. Если системное свойство не задано или является пустым, строка комментария записывается следующим образом. Сначала записывается символ #, затем текущие дата и время в формате, используемом методом Date.toString, а после них — разделитель строк.

Затем каждая запись этой таблицы Properties записывается в отдельной строке. Для каждой записи сначала записывается строка ключа, затем символ ASCII = и строка соответствующего элемента. В ключе перед каждым символом пробела записывается \. В элементе с предшествующим \ записываются начальные пробелы, но не пробелы внутри строки или в ее конце. Перед символами ключа и элемента #, !, = и : записывается обратная косая черта, чтобы обеспечить их корректную загрузку.

После записи всех элементов выходной поток сбрасывается. Выходной поток остается открытым после возврата этого метода.

Требования к реализации:
Ключи и элементы записываются в естественном порядке сортировки ключей в entrySet(), если только подкласс не переопределил entrySet(), чтобы возвращать значение, отличное от super.entrySet().
Параметры:
writer — средство записи в выходной поток символов.
comments — описание списка свойств.
Исключения:
IOException — если при записи этого списка свойств в указанный выходной поток возникает IOException.
ClassCastException — если этот объект Properties содержит ключи или значения, не являющиеся Strings.
NullPointerException — если writer равно null.
С версии:
1.6

store

public void store(OutputStream out, String comments) throws IOException
Записывает этот список свойств (пары ключей и элементов) из таблицы Properties в выходной поток в формате, подходящем для загрузки в таблицу Properties с помощью метода load(InputStream).

Свойства из таблицы значений по умолчанию этой таблицы Properties (если она есть) этим методом не записываются.

Этот метод выводит комментарии, ключи и значения свойств в том же формате, который описан в store(Writer), со следующими отличиями:

  • Поток записывается с использованием кодировки символов ISO 8859-1.
  • Символы комментариев, отсутствующие в Latin-1, записываются как \uxxxx, где xxxx — соответствующее шестнадцатеричное значение Unicode.
  • Символы в ключах или значениях свойств, числовые значения которых меньше \u0020 или больше \u007E, записываются как \uxxxx, где xxxx — соответствующее шестнадцатеричное значение.

После записи всех элементов выходной поток сбрасывается. Выходной поток остается открытым после возврата этого метода.

Параметры:
out — выходной поток.
comments — описание списка свойств.
Исключения:
IOException — если при записи этого списка свойств в указанный выходной поток возникает IOException.
ClassCastException — если этот объект Properties содержит ключи или значения, не являющиеся Strings.
NullPointerException — если out равно null.
С версии:
1.2

loadFromXML

public void loadFromXML(InputStream in) throws IOException, InvalidPropertiesFormatException
Загружает в эту таблицу свойств все свойства, представленные XML-документом из указанного входного потока.

XML-документ должен содержать следующее объявление DOCTYPE:

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
Кроме того, документ должен соответствовать описанному выше DTD свойств.

Реализация должна считывать XML-документы, использующие кодировку «UTF-8» или «UTF-16». Реализация может поддерживать и другие кодировки.

Указанный поток закрывается после возврата этого метода.

Параметры:
in — входной поток, из которого считывается XML-документ.
Исключения:
IOException — если при чтении из указанного входного потока возникает IOException.
UnsupportedEncodingException — если объявление кодировки документа удалось прочитать и в нем указана неподдерживаемая кодировка.
InvalidPropertiesFormatException — данные входного потока не образуют допустимый XML-документ с обязательным типом документа.
NullPointerException — если in равно null.
С версии:
1.5
Внешние спецификации
  • Расширяемый язык разметки (XML) 1.0 (пятое издание)
См. также:
  • storeToXML(OutputStream, String, String)
  • Кодировка символов в сущностях

storeToXML

public void storeToXML(OutputStream os, String comment) throws IOException
Выводит XML-документ, представляющий все свойства, содержащиеся в этой таблице.

Вызов этого метода в форме props.storeToXML(os, comment) ведет себя точно так же, как вызов props.storeToXML(os, comment, "UTF-8");.

Параметры:
os — выходной поток, в который выводится XML-документ.
comment — описание списка свойств или null, если комментарий не нужен.
Исключения:
IOException — если при записи в указанный выходной поток возникает IOException.
NullPointerException — если os равно null.
ClassCastException — если этот объект Properties содержит ключи или значения, не являющиеся Strings.
С версии:
1.5
См. также:
  • loadFromXML(InputStream)

storeToXML

public void storeToXML(OutputStream os, String comment, String encoding) throws IOException
Выводит XML-документ, представляющий все свойства, содержащиеся в этой таблице, с использованием указанной кодировки.

XML-документ будет содержать следующее объявление DOCTYPE:

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

Если указанный комментарий равен null, комментарий в документе сохраняться не будет.

Реализация должна поддерживать запись XML-документов с кодировкой «UTF-8» или «UTF-16». Реализация может поддерживать и другие кодировки.

Символы, которые невозможно отобразить в указанной кодировке, будут закодированы в виде числовых символьных ссылок.

Указанный поток остается открытым после возврата этого метода.

Этот метод работает так же, как storeToXML(OutputStream os, String comment, Charset charset), за исключением того, что он выполняет поиск кодировки по указанному имени кодировки.

Параметры:
os — выходной поток, в который выводится XML-документ.
comment — описание списка свойств или null, если комментарий не нужен.
encoding — имя поддерживаемой кодировки символов
Исключения:
IOException — если при записи в указанный выходной поток возникает IOException.
UnsupportedEncodingException — если реализация не поддерживает эту кодировку.
NullPointerException — если os равно null или если encoding равно null.
ClassCastException — если этот объект Properties содержит ключи или значения, не являющиеся Strings.
С версии:
1.5
Внешние спецификации
  • Расширяемый язык разметки (XML) 1.0 (пятое издание)
См. также:
  • loadFromXML(InputStream)
  • Кодировка символов в сущностях

storeToXML

public void storeToXML(OutputStream os, String comment, Charset charset) throws IOException
Выводит XML-документ, представляющий все свойства, содержащиеся в этой таблице, с использованием указанной кодировки.

XML-документ будет содержать следующее объявление DOCTYPE:

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

Если указанный комментарий равен null, комментарий в документе сохраняться не будет.

Реализация должна поддерживать запись XML-документов с кодировкой «UTF-8» или «UTF-16». Реализация может поддерживать и другие кодировки.

Символы, которые невозможно отобразить в указанной кодировке, будут закодированы в виде числовых символьных ссылок.

Указанный поток остается открытым после возврата этого метода.

Параметры:
os — выходной поток, в который выводится XML-документ.
comment — описание списка свойств или null, если комментарий не нужен.
charset — кодировка
Исключения:
IOException — если при записи в указанный выходной поток возникает IOException.
NullPointerException — если os или charset равно null.
ClassCastException — если этот объект Properties содержит ключи или значения, не являющиеся Strings.
С версии:
10
Внешние спецификации
  • Расширяемый язык разметки (XML) 1.0 (пятое издание)
См. также:
  • loadFromXML(InputStream)
  • Кодировка символов в сущностях

getProperty

public String getProperty(String key)
Ищет свойство с указанным ключом в этом списке свойств. Если ключ не найден в этом списке свойств, выполняется рекурсивный поиск в списке свойств по умолчанию и его значениях по умолчанию. Если свойство не найдено, метод возвращает null.
Параметры:
key — ключ свойства.
Возвращает:
значение в этом списке свойств, соответствующее указанному ключу.
См. также:
  • setProperty(String, String)
  • defaults

getProperty

public String getProperty(String key, String defaultValue)
Ищет свойство с указанным ключом в этом списке свойств. Если ключ не найден в этом списке свойств, выполняется рекурсивный поиск в списке свойств по умолчанию и его значениях по умолчанию. Если свойство не найдено, метод возвращает аргумент со значением по умолчанию.
Параметры:
key — ключ хеш-таблицы.
defaultValue — значение по умолчанию.
Возвращает:
значение в этом списке свойств, соответствующее указанному ключу.
См. также:
  • setProperty(String, String)
  • defaults

propertyNames

public Enumeration<?> propertyNames()
Возвращает перечисление всех ключей в этом списке свойств, включая уникальные ключи из списка свойств по умолчанию, если ключ с таким же именем еще не найден в основном списке свойств.
Возвращает:
перечисление всех ключей в этом списке свойств, включая ключи из списка свойств по умолчанию.
Исключения:
ClassCastException — если какой-либо ключ в этом списке свойств не является строкой.
См. также:
  • Enumeration
  • defaults
  • stringPropertyNames()

stringPropertyNames

public Set<String> stringPropertyNames()
Возвращает неизменяемый набор ключей из этого списка свойств, в котором ключи и соответствующие им значения являются строками, включая уникальные ключи из списка свойств по умолчанию, если ключ с таким же именем еще не найден в основном списке свойств. Свойства, ключ или значение которых не относится к типу String, исключаются.

Возвращаемый набор не связан с этим объектом Properties. Изменения этого объекта Properties не отражаются в возвращаемом наборе.

Возвращает:
неизменяемый набор ключей в этом списке свойств, в котором ключи и соответствующие им значения являются строками, включая ключи из списка свойств по умолчанию.
С версии:
1.6
См. также:
  • defaults

list

public void list(PrintStream out)
Выводит этот список свойств в указанный выходной поток. Этот метод полезен для отладки.
Параметры:
out — выходной поток.
Исключения:
ClassCastException — если ключ или значение в этом списке свойств не является строкой.

list

public void list(PrintWriter out)
Выводит этот список свойств в указанный выходной поток. Этот метод полезен для отладки.
Параметры:
out — выходной поток.
Исключения:
ClassCastException — если ключ или значение в этом списке свойств не является строкой.
С версии:
1.1

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзор концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API