Главная » Java » Класс Properties состоящий из строковых имен и связанных с ними строковых элементов

0

Еще один распространенный  вариант пары ключ/элемент — список свойств, состоящий из строковых имен и связанных с ними строковых элементов. Эта разновидность словаря часто обладает вспомогательным  набором элементов по умолчанию для свойств, отсутствующих в таблице. является расширением Hashtable. Практически для всех манипуляций со списками свойств используются методы Hashtable, однако для получения свойств применяется один из двух методов getProperty:

public String getProperty(String key)

Возвращает элемент для заданного ключа key. Если ключ отсутствует в списке свойств, просматривается список свойств по умолчанию (если он существует). Метод возвращает null, если свойство не найдено.

public String getProperty(String key, String defaultElement)

Возвращает элемент для заданного ключа key. Если ключ отсутствует в списке свойств, просматривается список свойств по умолчанию (если он существует). Если элемент отсутствует в обоих списках, возвращается строка defaultElement.

содержит два конструктора: один вызывается без аргументов, а второму передается объект Properties, который представляет вспомогательный  список свойств по умолчанию. Если поиск в основном списке свойств оказывается неудачным, то просматривается вспомогательный  объект Properties, который, в свою очередь, может

иметь собственный вспомогательный  объект со свойствами по умолчанию, и так далее.

Цепочка основных и вспомогательных  списков свойств может иметь произвольную длину. public Properties()

Создает пустой список свойств.

public Properties(Properties defaults)

Создает пустой список свойств с заданным вспомогательным  объектом Properties для поиска свойств, отсутствующих в основном списке.

Если список свойств состоит только из строковых ключей и элементов, можно записывать или считывать его из файла или иного потока ввода/вывода с помощью следующих методов:

public void save(OutputStream out, String header)

Сохраняет содержимое списка свойств в OutputStream. Строка header записывается в выходной поток в виде комментария, состоящего из одной строки. Не пользуйтесь многострочными  заголовками-комментариями, иначе сохраненный список свойств не удастся загрузить. В файле сохраняются только свойства, входящие в основной список, но не во вспомогательный.

public synchronized void load(InputStream  in) throws

IOException

Загружает список свойств из InputStream. Предполагается, что список свойств был ранее сохранен методом save. Метод загружает свойства только в основной список, но не во вспомогательный.

Для получения объекта Enumeration, представляющего  собой “фотографию” ключей в списке свойств, применяется метод propertyNames:

public Enumeration propertyNames()

Создает объект-перечисление с перечнем всех ключей. Метод гарантирует фиксацию исходного состояния.

public void list(PrintStream  out)

Выводит свойства из списка в заданный поток PrintStream. Метод полезен во время отладки.

После создания объекта невозможно изменить его вспомогательный  перечень свойств. Если это все же необходимо сделать, можно создать подкласс класса Properties и изменить значение защищенного поля defaults, содержащее список свойств по умолчанию.

Источник: Арнольд К., Гослинг Д. – Язык программирования Java (1997)

По теме:

  • Комментарии