Spec-Zone .ru
спецификации, руководства, описания, API
|
public class Properties extends Hashtable<Object,Object>
Properties
класс представляет персистентный набор свойств. Properties
может быть сохранен к потоку или загружен из потока. Каждый ключ и его соответствующее значение в списке свойств являются строкой. Список свойств может содержать другой список свойств как свои "значения по умолчанию"; этот второй список свойств ищется, если ключ свойства не находится в исходном списке свойств.
Поскольку Properties
наследовался от Hashtable
, put
и putAll
методам можно примениться к a Properties
объект. Их использованию строго обескураживают, поскольку они позволяют вызывающей стороне вставлять записи, ключи которых или значения не Strings
. setProperty
метод должен использоваться вместо этого. Если store
или save
метод вызывают на "поставившем под угрозу" Properties
объект, который содержит не -String
ключ или значение, вызов перестанет работать. Точно так же звонок propertyNames
или list
метод перестанет работать, если его вызовут на "поставившем под угрозу" Properties
объект, который содержит не -String
ключ.
load(Reader)
/
store(Writer, String)
загрузка методов и свойства хранилища от и до символьно-ориентированного потока в простом ориентированном на строку формате, определенном ниже. load(InputStream)
/
store(OutputStream, String)
работа методов тот же самый путь как загрузка (Читатель) / хранилище (Писатель, Строка) пара, кроме ввода/потока вывода кодируется в кодировке символов ISO 8859-1. Символы, которые не могут быть непосредственно представлены в этом кодировании, могут быть записаны, используя Escape Unicode как определено в разделе 3.3 из Спецификации языка Java™; только единственный 'u' символ позволяется в escape-последовательности. native2ascii инструмент может использоваться, чтобы преобразовать файлы свойств в и от других кодировок символов.
loadFromXML(InputStream)
и storeToXML(OutputStream, String, String)
загрузка методов и свойства хранилища в простом формате XML. По умолчанию кодировка символов UTF-8 используется, однако определенное кодирование может быть определено если требующийся. У документа свойств 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 без потребности во внешней синхронизации.
Модификатор и Тип | Поле и Описание |
---|---|
protected Properties |
значения по умолчанию
Список свойств, который содержит значения по умолчанию для любых ключей, не найденных в этом списке свойств.
|
Конструктор и Описание |
---|
Properties()
Создает пустой список свойств без значений по умолчанию.
|
Properties(Properties defaults)
Создает пустой список свойств с указанными значениями по умолчанию.
|
Модификатор и Тип | Метод и Описание |
---|---|
Строка |
getProperty(String key)
Поиски свойства с указанным ключом в этом списке свойств.
|
Строка |
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, если ошибка ввода-вывода происходит, сохраняя список свойств. Привилегированный способ сохранить список свойств через
store(OutputStream out, String comments) метод или storeToXML(OutputStream os, String comment) метод. |
Объект |
setProperty(String key, String value)
Вызывает метод Hashtable
put . |
void |
store(OutputStream out, String comments)
Записи этот список свойств (ключ и пары элемента) в этом
Properties таблица к потоку вывода в формате, подходящем для того, чтобы загрузиться в a 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-документ, представляющий все свойства, содержавшиеся в этой таблице, используя указанное кодирование.
|
Set<String> |
stringPropertyNames()
Ряд возвратов ключей в этом списке свойств, где ключ и его соответствующее значение являются строками, включая отличные ключи в списке свойств по умолчанию, если ключ того же самого имени не был уже найден от основного списка свойств.
|
protected Properties defaults
public Properties()
public Properties(Properties defaults)
defaults
- значения по умолчанию.public Object setProperty(String key, String value)
put
. Предусмотренный параллелизм с методом getProperty. Осуществляет использование строк для ключей свойства и значений. Возвращенное значение является результатом Hashtable, призывают put
.key
- ключ, который будет помещен в этот список свойств.value
- значение, соответствующее key.null
если у этого не было того.getProperty(java.lang.String)
public void load(Reader reader) throws IOException
Свойства обрабатываются с точки зрения строк. Есть два вида строки, естественных строк и логических строк. Естественная строка определяется как строка символов, которая завершается любой рядом символов разделителя строки (\n
или \r
или \r\n
) или к концу потока. Естественная строка может быть или пустой строкой, строкой комментария, или содержать все или часть пары основного элемента. Логические синхронизации строчной развёртки все данные пары основного элемента, которая может быть распространена через несколько смежных естественных строк, выходя из последовательности разделителя строки с символом наклонной черты влево \
. Отметьте, что строка комментария не может быть расширена этим способом; у каждой естественной строки, которая является комментарием, должен быть свой собственный индикатор комментария, как описано ниже. Строки читаются из ввода, пока конец потока не достигается.
Естественную строку, которая содержит только пробельные символы, считают пробелом и игнорируется. У строки комментария есть ASCII '#'
или '!'
как его первый цветной пробел; строки комментария также игнорируются и не кодируют информацию об основном элементе. В дополнение к разделителям строки этот формат рассматривает пространство символов (' '
, '\u0020'
), вкладка ('\t'
, '\u0009'
), и перевод формата ('\f'
, '\u000C'
) быть пробелом.
Если логическая строка распространяется через несколько естественных строк, наклонная черта влево, выходящая из последовательности разделителя строки, последовательности разделителя строки, и любой пробел в начале следующей строки имеет, не влияют на значениях элемента или ключе. Остаток от обсуждения ключа и парсинга элемента (загружаясь) предположит, что все символы, составляющие ключ и элемент, появляются на единственной естественной строке после того, как символы продолжения строки были удалены. Отметьте, что не достаточно только исследовать символ, предшествующий последовательности разделителя строки, чтобы решить, оставляют ли разделителя строки; должно быть нечетное число непрерывных наклонных черт влево для разделителя строки, которого оставят. Так как ввод обрабатывается слева направо, ненулевое четное число 2n непрерывные наклонные черты влево прежде, чем разделитель строки (или в другом месте) закодирует n наклонные черты влево после обработки escape.
Ключ содержит все символы в строке, запускающейся с первого цветного пробела и до, но не включая, первое, которого неоставляют '='
, ':'
, или пробельный символ кроме разделителя строки. Все эти ключевые символы завершения могут быть включены в ключ, выходя из них с предыдущим символом наклонной черты влево; например,
\:\=
был бы двухсимвольный ключ ":="
. Символы разделителя строки могут быть включены, используя \r
и \n
escape-последовательности. Любой пробел после ключа пропускается; если первый цветной пробел после ключа '='
или ':'
, тогда это игнорируется, и любые пробельные символы после этого также пропускаются. Все остающиеся символы на строке становятся частью связанной строки элемента; если нет никаких остающихся символов, элемент является пустой строкой ""
. Как только необработанные символьные последовательности, составляющие ключ и элемент, идентифицируются, обработка escape выполняется как описано выше.
Как пример, каждая из следующих трех строк определяет ключ "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"
и связанный элемент является пустой строкой ""
.
Символы в ключах и элементах могут быть представлены в escape-последовательностях, подобных используемым для символьных и строковых литералов (см. разделы 3.3 и 3.10.6 из Спецификации языка Java™). Различия от управляющих последовательностей символов и Escape Unicode, используемых для символов и строк:
\b
не представляет символ возврата. \
, перед недопустимым символом ESC как ошибка; наклонная черта влево тихо отбрасывается. Например, в Java представляют последовательность в виде строки "\z"
вызвал бы ошибку времени компиляции. Напротив, этот метод тихо отбрасывает наклонную черту влево. Поэтому, этот метод обрабатывает две символьных последовательности "\b"
как эквивалентный единственному символу 'b'
. Указанный поток остается открытым после этого метода возвраты.
reader
- входной поток символа.IOException
- если ошибка произошла, читая из входного потока.IllegalArgumentException
- если уродливый escape Unicode появляется во вводе.public void load(InputStream inStream) throws IOException
load(Reader)
и, как предполагается, использует кодировку символов ISO 8859-1; это - каждый байт, один символ Latin1. Символы не в Latin1, и определенных специальных символах, представляются в ключах и элементах, используя Escape Unicode как определено в разделе 3.3 из Спецификации языка Java™. Указанный поток остается открытым после этого метода возвраты.
inStream
- входной поток.IOException
- если ошибка произошла, читая из входного потока.IllegalArgumentException
- если входной поток содержит уродливую escape-последовательность Unicode.@Deprecated public void save(OutputStream out, String comments)
store(OutputStream out, String comments)
метод или storeToXML(OutputStream os, String comment)
метод.store(OutputStream out, String comments)
метод и подавляет IOExceptions, которые были брошены.out
- поток вывода.comments
- описание списка свойств.ClassCastException
- если это Properties
объект содержит любые ключи или значения, которые не являются Strings
.public void store(Writer writer, String comments) throws IOException
Properties
таблица к выходному потоку символа в формате, подходящем для того, чтобы использовать load(Reader)
метод. Свойства от таблицы значений по умолчанию этого Properties
таблица (если кто-либо) не выписывается этим методом.
Если параметром комментариев не является нуль, то ASCII #
символ, строка комментариев, и разделитель строки сначала пишутся потоку вывода. Таким образом, comments
может служить комментарием идентификации. Любой из перевода строки ('\n'), возврат каретки ('\r'), или возврат каретки, сопровождаемый сразу переводом строки в комментариях, заменяется разделителем строки, сгенерированным Writer
и если следующий символ в комментариях не является символом #
или символ !
тогда ASCII #
выписывается после того разделителя строки.
Затем, строка комментария всегда пишется, состоя из ASCII #
символ, текущая дата и время (как будто произведенный toString
метод Date
в течение текущего времени), и разделитель строки как сгенерировано Writer
.
Затем каждая запись в этом Properties
таблица выписывается, один на строку. Для каждой записи ключевая строка пишется, затем ASCII =
, тогда связанная строка элемента. Для ключа все пробелы пишутся с предыдущим \
символ. Для элемента, ведя пробелы, но не символы встроенного или конечного пробела, пишутся с предыдущим \
символ. Ключ и символы элемента #
, !
, =
, и :
пишутся с предыдущей наклонной чертой влево, чтобы гарантировать, что они должным образом загружаются.
После того, как записи были записаны, поток вывода сбрасывается. Поток вывода остается открытым после этого метода возвраты.
writer
- выходной потоковый писатель символа.comments
- описание списка свойств.IOException
- если запись этого списка свойств к указанному потоку вывода бросает IOException.ClassCastException
- если это Properties
объект содержит любые ключи или значения, которые не являются Strings
.NullPointerException
- если writer
нуль.public void store(OutputStream out, String comments) throws IOException
Properties
таблица к потоку вывода в формате, подходящем для того, чтобы загрузиться в a Properties
таблица используя load(InputStream)
метод. Свойства от таблицы значений по умолчанию этого Properties
таблица (если кто-либо) не выписывается этим методом.
Этот метод выводит комментарии, ключи свойств и значения в том же самом формате как определено в store(Writer)
, со следующими различиями:
\u
xxxx для их соответствующего unicode шестнадцатеричного значения xxxx. \u0020
и символы, больше чем \u007E
в ключах свойства или значениях пишутся как \u
xxxx для соответствующего шестнадцатеричного значения xxxx. После того, как записи были записаны, поток вывода сбрасывается. Поток вывода остается открытым после этого метода возвраты.
out
- поток вывода.comments
- описание списка свойств.IOException
- если запись этого списка свойств к указанному потоку вывода бросает IOException.ClassCastException
- если это Properties
объект содержит любые ключи или значения, которые не являются Strings
.NullPointerException
- если out
нуль.public void loadFromXML(InputStream in) throws IOException, InvalidPropertiesFormatException
У XML-документа должно быть следующее объявление DOCTYPE:
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">Кроме того документ должен удовлетворить DTD свойств, описанный выше.
Указанный поток закрывается после этого метода возвраты.
in
- входной поток, из которого можно считать XML-документ.IOException
- если чтение от указанного входного потока приводит к IOException.InvalidPropertiesFormatException
- Данные на входном потоке не составляют допустимый XML-документ с переданным под мандат типом документа.NullPointerException
- если in
нуль.storeToXML(OutputStream, String, String)
public void storeToXML(OutputStream os, String comment) throws IOException
Вызов этого метода формы props.storeToXML(os, comment) ведет себя точно таким же образом как вызов props.storeToXML(os, comment, "UTF-8");.
os
- поток вывода, о котором можно испустить XML-документ.comment
- описание списка свойств, или null
если никакой комментарий не требуется.IOException
- если запись в указанный поток вывода приводит к IOException.NullPointerException
- если os
нуль.ClassCastException
- если это Properties
объект содержит любые ключи или значения, которые не являются Strings
.loadFromXML(InputStream)
public void storeToXML(OutputStream os, String comment, String encoding) throws IOException
У XML-документа будет следующее объявление DOCTYPE:
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
Если указанный комментарий null
тогда никакой комментарий не будет сохранен в документе.
Указанный поток остается открытым после этого метода возвраты.
os
- поток вывода, о котором можно испустить XML-документ.comment
- описание списка свойств, или null
если никакой комментарий не требуется.encoding
- имя поддерживаемой кодировки символовIOException
- если запись в указанный поток вывода приводит к IOException.NullPointerException
- если os
null
, или если encoding
null
.ClassCastException
- если это Properties
объект содержит любые ключи или значения, которые не являются Strings
.loadFromXML(InputStream)
public String getProperty(String key)
null
если свойство не находится.key
- ключ свойства.setProperty(java.lang.String, java.lang.String)
, defaults
public String getProperty(String key, String defaultValue)
key
- ключ хеш-таблицы.defaultValue
- значение по умолчанию.setProperty(java.lang.String, java.lang.String)
, defaults
public Enumeration<?> propertyNames()
ClassCastException
- если какой-либо ключ в этом списке свойств не является строкой.Enumeration
, defaults
, stringPropertyNames()
public Set<String> stringPropertyNames()
Возвращенный набор не поддерживается объектом Properties. Изменения к этому Properties не отражаются в наборе, или наоборот.
defaults
public void list(PrintStream out)
out
- поток вывода.ClassCastException
- если какой-либо ключ в этом списке свойств не является строкой.public void list(PrintWriter out)
out
- поток вывода.ClassCastException
- если какой-либо ключ в этом списке свойств не является строкой.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.