|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Свойства являются значениями конфигурации, которыми управляют как пары ключ/значение. В каждой паре ключ и значение - оба String значения. Ключ идентифицирует, и используется, чтобы получить, значение, очень поскольку имя переменной используется, чтобы получить значение переменной. Например, приложение, способное к загрузке файлов, могло бы использовать свойство, названное "download.lastDirectory", чтобы отследить каталог, используемый для последней загрузки.
Чтобы управлять свойствами, создайте экземпляры . Этот class обеспечивает методы для следующего:
Properties объект от потока,Для введения в потоки обратитесь к
Properties расширяется java.util.Hashtable. Некоторые из методов, наследованных от Hashtable поддерживайте следующие действия:
Properties объект,Properties список,Properties объект пуст. System class поддерживает a Properties объект, который определяет конфигурацию текущей рабочей среды. Для больше об этих свойствах, см. Системные Свойства. Остаток от этого раздела объясняет, как использовать свойства, чтобы управлять конфигурацией приложения.
Следующее число иллюстрирует, как типичное приложение могло бы управлять своими данными конфигурации с a Properties объект в течение его выполнения.

Starting UpProperties объект. Обычно, свойства значения по умолчанию сохранены в файле на диске наряду с .class и другие файлы ресурсов для приложения.Properties возразите и загружает свойства, которые были сохранены с прошлого раза, когда приложение было запущено. Много приложений хранят свойства на основе в расчёте на пользователя, таким образом, свойства, загруженные в этом шаге, обычно находятся в определенном файле в определенном каталоге, сохраняемом этим приложением в корневом каталоге пользователя. Наконец, приложение использует значение по умолчанию и помнило свойства, чтобы инициализировать себя.RunningProperties объект обновляется, чтобы отразить эти изменения. Если пользовательские изменения нужно помнить в будущих сеансах, они должны быть сохранены. 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. Всегда используйте Strings для ключей и значений, даже если метод позволяет другие типы. Также не вызывайте Hashtable.set или Hastable.setAll на Properties объекты; всегда используйте Properties.setProperty.