Класс Properties в Java

Java 数据结构Структуры данных Java


Properties наследуется от Hashtable и представляет собой класс, используемый для управления конфигурационной информацией.

Поскольку Properties наследуется от класса Hashtable, он обладает всей функциональностью Hashtable, а также предоставляет некоторые специальные методы для чтения и записи файлов свойств.

Класс Properties часто используется для хранения информации о конфигурации программы, такой как сведения о подключении к базе данных, настройки вывода журнала, параметры приложения и т. д. Используя класс Properties, можно хранить эту информацию в текстовом файле и считывать её в программе.

Класс Properties используется многими классами Java. Например, при получении переменных среды он служит возвращаемым значением метода System.getProperties().

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

Properties defaults;

Класс Properties определяет два метода-конструктора. Первый метод-конструктор не имеет значения по умолчанию.

Properties()

Второй метод-конструктор использует propDefault в качестве значения по умолчанию. В обоих случаях список свойств пуст:

Properties(Properties propDefault)

Помимо методов, определённых в Hashtable, Properties также определяет следующие методы:

Порядковый номер Описание метода
1 String getProperty(String key)
Ищет свойство с указанным ключом в этом списке свойств.
2 String getProperty(String key, String defaultProperty)
Ищет свойство с указанным ключом в списке свойств.
3 void list(PrintStream streamOut)
Выводит список свойств в указанный выходной поток.
4 void list(PrintWriter streamOut)
Выводит список свойств в указанный выходной поток.
5 void load(InputStream streamIn) throws IOException
Читает список свойств (пары ключей и элементов) из входного потока.
6 Enumeration propertyNames( )
Читает список свойств (пары ключей и элементов) из входного потока символов в простом построчном формате.
7 Object setProperty(String key, String value)
Вызывает метод put класса Hashtable.
8 void store(OutputStream streamOut, String description)
Записывает список свойств (пары ключей и элементов) из этой таблицы Properties в выходной поток в формате, подходящем для загрузки в таблицу Properties с помощью метода load(InputStream).

Класс Properties предоставляет несколько методов для чтения и записи файлов свойств. Наиболее часто используемые методы — это методы load() и store().

Метод load() может читать свойства из файла, а метод store() может записывать свойства в файл.

Ниже приведён простой пример, демонстрирующий, как использовать класс Properties для чтения и записи файлов свойств:

Пример


import java.io.*;
import java.util.Properties;

public class PropertiesExample {
    public static void main(String[] args) {
        Properties prop = new Properties();

        try {
            // Прочитать файл свойств
            prop.load(new FileInputStream("config.properties"));

            // Получить значение свойства
            String username = prop.getProperty("username");
            String password = prop.getProperty("password");

            // Вывести значение свойства
            System.out.println("username: " + username);
            System.out.println("password: " + password);

            // Изменить значение свойства
            prop.setProperty("username", "newUsername");
            prop.setProperty("password", "newPassword");

            // Сохранить свойства в файл
            prop.store(new FileOutputStream("config.properties"), null);

        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

В приведённом выше примере мы создали объект Properties, а затем использовали метод load() для чтения свойств из файла конфигурации. Далее мы использовали метод getProperty() для получения значения свойства и вывели его в консоль. Затем мы использовали метод setProperty() для изменения значения свойства и метод store() для сохранения изменённых свойств обратно в файл.

Пример

Следующая программа иллюстрирует несколько методов, поддерживаемых этой структурой данных:

Пример

import java.util.*; public class PropDemo⟧public { public static void String(args args[]) { Properties capitals = new Set(); Set states; String str; capitals.put("Illinois", "Springfield"); capitals.put("Missouri", "Jefferson City"); capitals.put("Washington", "Olympia"); capitals.put("California", "Sacramento"); capitals.put("Indiana", "Indianapolis"); // Показать все штаты и их столицы в хэш-таблице. states = capitals.keySet(); // получить представление множества ключей Iterator itr = states.iterator(); while(itr.hasNext()) { str = (String) itr.next(); System.out.println("Столица " + str + " is " + capitals.getProperty(str) + "."); } System.out.println(); // искать штат, которого нет в списке -- указать значение по умолчанию str = capitals.getProperty("Florida", "Not Found"); System.out.println("Столица Флориды — это " + str + "."); } }

Результат компиляции и выполнения приведенного выше примера выглядит следующим образом:

The capital of Missouri is Jefferson City.
The capital of Illinois is Springfield.
The capital of Indiana is Indianapolis.
The capital of California is Sacramento.
The capital of Washington is Olympia.

The capital of Florida is Not Found.

Java 数据结构Структуры данных Java

Другие расширения