Java Properties-Klasse

Java 数据结构Java-Datenstrukturen


Properties erbt von Hashtable und ist eine Klasse, die zur Verwaltung von Konfigurationsinformationen verwendet wird.

Da Properties von der Klasse Hashtable erbt, verfügt sie über alle Funktionen von Hashtable und bietet zusätzlich einige spezielle Methoden zum Lesen und Schreiben von Properties-Dateien.

Die Properties-Klasse wird häufig verwendet, um Konfigurationsinformationen für Programme zu speichern, wie Datenbankverbindungsinformationen, Konfiguration der Protokollausgabe, Anwendungseinstellungen usw. Mit der Properties-Klasse können Sie diese Informationen in einer Textdatei speichern und im Programm einlesen.

Die Properties-Klasse wird von vielen Java-Klassen verwendet. Wenn beispielsweise Umgebungsvariablen abgerufen werden, dient sie als Rückgabewert der Methode System.getProperties().

Properties definiert die folgende Instanzvariable. Diese Variable enthält eine Standard-Eigenschaftsliste, die einem Properties-Objekt zugeordnet ist.

Properties defaults;

Die Properties-Klasse definiert zwei Konstruktormethoden. Die erste Konstruktormethode hat keinen Standardwert.

Properties()

Die zweite Konstruktormethode verwendet propDefault als Standardwert. In beiden Fällen ist die Eigenschaftsliste leer:

Properties(Properties propDefault)

Zusätzlich zu den in Hashtable definierten Methoden definiert Properties auch die folgenden Methoden:

Laufende Nummer Methodenbeschreibung
1 String getProperty(String key)
Sucht in dieser Eigenschaftsliste nach der Eigenschaft mit dem angegebenen Schlüssel.
2 String getProperty(String key, String defaultProperty)
Sucht in der Eigenschaftsliste nach der Eigenschaft mit dem angegebenen Schlüssel.
3 void list(PrintStream streamOut)
Gibt die Eigenschaftsliste an den angegebenen Ausgabestream aus.
4 void list(PrintWriter streamOut)
Gibt die Eigenschaftsliste an den angegebenen Ausgabestream aus.
5 void load(InputStream streamIn) throws IOException
Liest die Eigenschaftsliste (Schlüssel- und Elementpaare) aus dem Eingabestream.
6 Enumeration propertyNames( )
Liest die Eigenschaftsliste (Schlüssel- und Elementpaare) aus dem Eingabe-Zeichenstream in einem einfachen zeilenorientierten Format.
7 Object setProperty(String key, String value)
Ruft die put-Methode von Hashtable auf.
8 void store(OutputStream streamOut, String description)
Schreibt die Eigenschaftsliste (Schlüssel- und Elementpaare) in dieser Properties-Tabelle in den Ausgabestrom in einem Format, das zum Laden in eine Properties-Tabelle mit der Methode load(InputStream) geeignet ist.

Die Klasse Properties bietet mehrere Methoden zum Lesen und Schreiben von Eigenschaftsdateien. Die am häufigsten verwendeten Methoden sind die Methoden load() und store().

Die Methode load() kann Eigenschaften aus einer Datei lesen, während die Methode store() Eigenschaften in eine Datei schreiben kann.

Unten sehen Sie ein einfaches Beispiel, das zeigt, wie die Klasse Properties zum Lesen und Schreiben von Eigenschaftsdateien verwendet wird:

Beispiel


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

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

        try {
            // Eigenschaftsdatei lesen
            prop.load(new FileInputStream("config.properties"));

            // Eigenschaftswert abrufen
            String username = prop.getProperty("username");
            String password = prop.getProperty("password");

            // Eigenschaftswert ausgeben
            System.out.println("username: " + username);
            System.out.println("password: " + password);

            // Eigenschaftswert ändern
            prop.setProperty("username", "newUsername");
            prop.setProperty("password", "newPassword");

            // Eigenschaften in Datei speichern
            prop.store(new FileOutputStream("config.properties"), null);

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

Im obigen Beispiel haben wir ein Properties-Objekt erstellt und dann die Methode load() verwendet, um Eigenschaften aus der Konfigurationsdatei zu lesen. Als Nächstes haben wir die Methode getProperty() verwendet, um den Eigenschaftswert abzurufen und ihn auf der Konsole auszugeben. Dann haben wir die Methode setProperty() verwendet, um den Eigenschaftswert zu ändern, und die Methode store() verwendet, um die geänderten Eigenschaften zurück in die Datei zu speichern.

Beispiel

Das folgende Programm veranschaulicht mehrere von dieser Datenstruktur unterstützte Methoden:

Beispiel

import java.util.*; public class PropDemo { public static void main(String args[]) { Properties capitals = new Properties(); 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"); // Alle Bundesstaaten und Hauptstädte in der Hashtabelle anzeigen. states = capitals.keySet(); // Set-Ansicht der Schlüssel abrufen Iterator itr = states.iterator(); while(itr.hasNext()) { str = (String) itr.next(); System.out.println("Die Hauptstadt von " + str + " ist " + capitals.getProperty(str) + "."); } System.out.println(); // nach einem Bundesstaat suchen, der nicht in der Liste ist -- Standardwert angeben str = capitals.getProperty("Florida", "Nicht gefunden"); System.out.println("Die Hauptstadt von Florida ist " + str + "."); } }

Das Kompilierungs- und Ausführungsergebnis des obigen Beispiels ist wie folgt:

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-Datenstrukturen

Weitere Erweiterungen