Spec-Zone .ru
спецификации, руководства, описания, API
|
Свойства являются значениями конфигурации, которыми управляют как пары ключ/значение. В каждой паре ключ и значение - оба String
значения. Ключ идентифицирует, и используется, чтобы получить, значение, очень поскольку имя переменной используется, чтобы получить значение переменной. Например, приложение, способное к загрузке файлов, могло бы использовать свойство, названное "download.lastDirectory", чтобы отследить каталог, используемый для последней загрузки.
Чтобы управлять свойствами, создайте экземпляры java.util.Properties
Properties
объект от потока,Для введения в потоки обратитесь к
Properties
расширяется java.util.Hashtable
. Некоторые из методов, наследованных от Hashtable
поддерживайте следующие действия:
Properties
объект,Properties
список,Properties
объект пуст. System
class поддерживает a Properties
объект, который определяет конфигурацию текущей рабочей среды. Для больше об этих свойствах, см. Системные Свойства. Остаток от этого раздела объясняет, как использовать свойства, чтобы управлять конфигурацией приложения.
Следующее число иллюстрирует, как типичное приложение могло бы управлять своими данными конфигурации с a Properties
объект в течение его выполнения.
Starting Up
Properties
объект. Обычно, свойства значения по умолчанию сохранены в файле на диске наряду с .class
и другие файлы ресурсов для приложения.Properties
возразите и загружает свойства, которые были сохранены с прошлого раза, когда приложение было запущено. Много приложений хранят свойства на основе в расчёте на пользователя, таким образом, свойства, загруженные в этом шаге, обычно находятся в определенном файле в определенном каталоге, сохраняемом этим приложением в корневом каталоге пользователя. Наконец, приложение использует значение по умолчанию и помнило свойства, чтобы инициализировать себя.Running
Properties
объект обновляется, чтобы отразить эти изменения. Если пользовательские изменения нужно помнить в будущих сеансах, они должны быть сохранены. Exiting
Следующий код Java выполняет первые два шага, описанные в предыдущем разделе: загрузка свойств значения по умолчанию и загрузка помнивших свойств:
. . . // create and load default properties Properties defaultProps = new Properties(); FileInputStream in = new FileInputStream("defaultProperties"); defaultProps.load(in); in.close(); // create application properties with default Properties applicationProps = new Properties(defaultProps); // now load properties // from last invocation in = new FileInputStream("appProperties"); applicationProps.load(in); in.close(); . . .
Во-первых, приложение устанавливает значение по умолчанию Properties
объект. Этот объект содержит набор свойств, чтобы использовать, если значения явно не устанавливаются в другом месте. Затем метод загрузки читает значения по умолчанию из файла на названном диске defaultProperties
.
Затем, приложение использует различного конструктора, чтобы создать секунду Properties
объект, applicationProps
, чьи значения по умолчанию содержатся в defaultProps
. Значения по умолчанию играют роль, когда свойство получается. Если свойство не может быть найдено в applicationProps
, тогда его список значения по умолчанию ищется.
Наконец, код загружает ряд свойств в applicationProps
от названного файла appProperties
. Свойства в этом файле - те, которые были спасены из приложения в прошлый раз, когда это было вызвано, как объяснено в следующем разделе.
Следующий пример выписывает свойства приложения от предыдущего использования в качестве примера Properties.store
. Свойства значения по умолчанию не должны быть сэкономлены каждое время, потому что они никогда не изменяются.
FileOutputStream out = new FileOutputStream("appProperties"); applicationProps.store(out, "---No Comment---"); out.close();
store
метод нуждается в потоке, чтобы записать в, так же как строка, которую он использует в качестве комментария наверху вывода.
Как только приложение установило Properties
объект, приложение может запросить объект для информации о различных ключах и значениях, которые это содержит. Приложение получает информацию от a Properties
объект после запуска так, чтобы это могло инициализировать себя основанный на выборе, сделанном пользователем. Properties
У class есть несколько методов для того, чтобы получить информацию свойства:
contains(Object value)
и containsKey(Object key)
true
если значение или ключ находятся в Properties
объект. Properties
наследовал эти методы от Hashtable
. Таким образом они принимают Object
параметры, но только String
значения должны использоваться. getProperty(String key)
и getProperty(String key, String default)
list(PrintStream s)
и list(PrintWriter w)
elements()
, keys()
, и propertyNames()
Enumeration
содержа ключи или значения (как обозначено именем метода) содержавшийся в Properties
объект. keys
метод только возвращает ключи для объекта непосредственно; propertyNames
метод возвращает ключи для свойств значения по умолчанию также. stringPropertyNames()
propertyNames
, но возвраты a Set<String>
, и только имена возвратов свойств, где и ключ и значение являются строками. Отметьте что Set
объект не поддерживается Properties
объект, так изменения в каждый не влияет на другой. size()
Взаимодействие пользователя с приложением во время его выполнения может воздействовать на настройки свойства. Эти изменения должны быть отражены в Properties
возразите так, чтобы они были сохранены, когда приложение выходит (и вызывает store
метод). Следующие методы изменяют свойства в a Properties
объект:
setProperty(String key, String value)
Properties
объект. remove(Object key)
Hashtable
, и таким образом примите ключ и оцените типы параметра кроме String
. Всегда используйте String
s для ключей и значений, даже если метод позволяет другие типы. Также не вызывайте Hashtable.set
или Hastable.setAll
на Properties
объекты; всегда используйте Properties.setProperty
.