Java Properties-Klasse
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
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.
Weitere Erweiterungen
Java-Datenstrukturen