Spec-Zone .ru
спецификации, руководства, описания, API
|
java.util.Properties
Properties
таблица - своего рода Hashtable
с двумя расширениями функциональности и с ограничением, что ключи и элементы должны быть строками. Во-первых, есть методы для того, чтобы считать записи в таблицу от входного потока и записать все записи в таблице к потоку вывода. Во-вторых, a Properties
таблица может обратиться к другому Properties
таблица, которая обеспечивает значения по умолчанию. getProperty
метод очень походит get
метод (§21.4.3), но если запись не находится в этой таблице, то таблица значений по умолчанию ищется (и та таблица значений по умолчанию может самостоятельно обратиться к другой таблице значений по умолчанию, и так далее, рекурсивно). public classProperties
extends Hashtable { protected Propertiesdefaults
; publicProperties
(); publicProperties
(Properties defaults); public StringgetProperty
(String key); public StringgetProperty
(String key, String defaultValue); public EnumerationpropertyNames
(); public voidload
(InputStream in) throws IOException; public voidsave
(OutputStream out, String header); public voidlist
(PrintStream out); }
21.6.1 protected Properties
defaults
;
Если defaults
поле не null
, это - другой Properties
таблица, которая обеспечивает значения по умолчанию для этого Properties
таблица.
21.6.2 public
Properties
()
Этот конструктор инициализирует недавно создаваемый Properties
таблица так, чтобы у этого не было никакой таблицы значений по умолчанию. Первоначально, в недавно составленной таблице нет никаких записей.
21.6.3 public
Properties
(Properties defaults)
Этот конструктор инициализирует недавно создаваемый Properties
таблица так ее таблица значений по умолчанию defaults
. Параметр defaults
может быть null
, когда недавно создаваемый Properties
у таблицы не будет таблицы значений по умолчанию. Первоначально, в недавно составленной таблице нет никаких записей.
21.6.4 public String
getProperty
(String key)
Если есть запись в этом Properties
таблица с key
как его ключ, возвращается связанный элемент. Иначе, если это Properties
у таблицы есть таблица значений по умолчанию, тогда безотносительно getProperty
возвраты метода возвращаются. Иначе, null
возвращается.
21.6.5 public String
getProperty
(String key,
String defaultValue)
Если есть запись в этом Properties
таблица с key
как его ключ, возвращается связанный элемент. Иначе, если это Properties
у таблицы есть таблица значений по умолчанию, тогда безотносительно getProperty
возвраты метода возвращаются. Иначе, defaultValue
возвращается.
21.6.6 public Enumeration
propertyNames
()
Enumeration
(§21.1) возвращается, который генерирует все ключи для который это Properties
таблица могла предоставить связанный элемент. Если это Properties
у таблицы есть таблица значений по умолчанию (§21.6.1), тогда ключи, для которых у таблицы значений по умолчанию есть записи, также предоставляются Enumeration
, и так далее, рекурсивно; но никакой ключ не предоставляется Enumeration
не раз.
21.6.7 public void
load
(InputStream in) throws IOException
Свойства (ключ и пары элемента) читаются из входного потока:
Runtime.getRuntime().getLocalizedInputStream(in)и добавил к этому
Properties
таблица. См. getLocalizedInputStream
метод Runtime
(§20.16.15). Каждое свойство занимает одну строку входного потока. Каждая строка завершается разделителем строки (\n
или \r
или \r\n
). Строки от входного потока обрабатываются, пока конец файла не достигается на входном потоке.
Строка, которая содержит только пробел (§20.5.19) или чей первый непробельный символ является ASCII #
или !
игнорируется (таким образом, #
или !
укажите на строки комментария).
Каждая строка кроме пустой строки или строка комментария описывают одно свойство, которое будет добавлено к таблице (за исключением того, что, если концы строки с \, то следующая строка обрабатывается как строка продолжения, как описано ниже). Ключ состоит из всех символов в строке, запускающейся с первого непробельного символа и до, но не включая, первого ASCII =
, :
, или пробельный символ. Любой пробел после ключа пропускается; если первый непробельный символ после ключа =
или :
, тогда это игнорируется, и любые пробельные символы после этого также пропускаются. Все остающиеся символы на строке становятся частью связанной строки элемента. В пределах строки элемента (но не ключ), escape-последовательности ASCII \t
, \n
, \r
, \\
, \"
, \'
, \
(наклонная черта влево и пространство), и \u
xxxx распознаются и преобразовываются в единственные символы. Кроме того, если последний знак на строке \
, тогда следующая строка обрабатывается как продолжение текущей строки; \
и разделитель строки просто отбрасывается, и любые ведущие пробельные символы на строке продолжения также отбрасываются и не являются частью строки элемента.
Как пример, каждая из следующих четырех строк определяет ключ "Truth"
и связанное значение элемента "Beauty"
:
Truth Beauty Truth = Beauty Truth:Beauty Truth :BeautyКак другой пример, следующие три строки определяют единственное свойство:
fruits apple, banana, pear, \ cantaloupe, watermelon, \ kiwi, mangoКлюч
"fruit"
и связанный элемент:
"apple, banana, pear, cantaloupe, watermelon, kiwi, mango"Отметьте, что пространство появляется перед каждым
\
так, чтобы пространство появилось после каждой запятой в окончательном результате; \
, разделитель строки, и ведущий пробел на строке продолжения просто отбрасываются и не заменяются одним или более другими символами.
cheesesопределяет, что ключ
"cheeses"
и связанный элемент является пустой строкой.21.6.8 public void
save
(OutputStream out, String header)
Все свойства (ключ и пары элемента) в этом Properties
таблица пишется потоку вывода:
Runtime.getRuntime().getLocalizedOutputStream(out)в формате, подходящем для того, чтобы загрузиться в a
Properties
таблица используя load
метод (§21.6.7). См. getLocalizedOutputStream
метод Runtime
(§20.16.16). Свойства от таблицы значений по умолчанию этого Properties
таблица (если кто-либо) не выписывается этим методом.
Если параметром заголовка не является нуль, то ASCII #
символ, строка заголовка, и новая строка сначала пишутся потоку вывода. Таким образом, header
может служить комментарием идентификации.
Затем, строка комментария всегда пишется, состоя из ASCII #
символ, текущая дата и время (как будто произведенный toString
метод Date
(§21.3.7) в течение текущего времени), и новая строка.
Затем каждая запись в этом Properties
таблица выписывается, один на строку. Для каждой записи ключевая строка пишется, затем ASCII =
, тогда связанная строка элемента. Каждый символ строки элемента исследуется, чтобы видеть, должно ли это быть представлено как escape-последовательность. Символы ASCII \
, вкладка, новая строка, и возврат каретки пишутся как \\
, \t
, \n
, и \r
, соответственно. Символы меньше чем \u0020
и символы, больше чем \u007E
(в случае необходимости, в зависимости от потребностей локализованного потока вывода), пишутся как \u
xxxx для соответствующего шестнадцатеричного значения xxxx. Продвижение пробелов, но не символов встроенного или конечного пробела, пишется с предыдущим \
.
21.6.9 public void
list
(PrintStream out)
Свойства (ключ и пары элемента) в этом Properties
таблица пишется потоку вывода out
в возможно сокращенной форме, которая может быть более удобной для использования в отладке чем вывод save
метод. Никакой заголовок не пишется, и элемент оценивает дольше, чем 40 символов являются усеченными к первым 37 символам, к который символы"...
"добавляются. Таким образом, если имена ключей не являются слишком длинными, есть шанс борьбы, что каждое свойство впишется в пространство одной строки физического устройства вывода.
Содержание | Предыдущий | Следующий | Индекс
Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com