Wenn wir Programme schreiben, werden einige Parameter oft geändert, aber diese Änderung ist nicht das, was wir vorhersagen. Zum Beispiel haben wir ein Modul entwickelt, das die Datenbank betreibt. Während der Entwicklung stellen wir eine Verbindung zur lokalen Datenbank her und der IP, Datenbankname, Tabellenname, Datenbankhost und andere Informationen sind lokal. Um das Modul zu erstellen, das die Daten universell betreibt, können die obigen Informationen nicht im Programm geschrieben werden. Normalerweise besteht unser Ansatz darin, Konfigurationsdateien zur Lösung zu verwenden.
Verschiedene Sprachen haben ihre eigenen unterstützten Konfigurations -Dateitypen. Zum Beispiel unterstützt Python .ini -Dateien. Da es eine Konfigurationsklasse enthält, um das Lesen und Schreiben von .ini -Dateien zu unterstützen, können Programmierer .ini -Dateien entsprechend den von dieser Klasse bereitgestellten Methoden frei bedienen. In Java unterstützt Java das Lesen und Schreiben von .Properties -Dateien. Die eingebaute Java.util.Properties-Klasse von JDK bietet uns einen Komfort beim Betrieb. Properties-Dateien.
eins. .Properties Dateiformular
# Folgendes finden
In der obigen Datei gehen wir davon aus, dass der Dateiname: Test.Properties -Datei lautet. Das erste Verhalten von # kommentiert die Informationen; Auf der linken Seite des gleichen Zeichens "=" nennen wir es Schlüssel; Auf der rechten Seite des gleichen Zeichens "=" nennen wir es Wert. (Tatsächlich ist es das, was wir oft als Schlüsselwertpaare bezeichnen.) Die Schlüssel sollte eine Variable in unserem Programm sein. Und Wert wird gemäß der tatsächlichen Situation konfiguriert.
zwei. Eigenschaftenklasse in JDK
Die Eigenschaftenklasse existiert in der Zelle Java.util, die von Hashtable ererbt, und bietet mehrere Hauptmethoden:
1. GetProperty (String -Schlüssel), suchen Sie in dieser Eigenschaftsliste mit dem angegebenen Schlüssel nach Eigenschaften. Das heißt, durch den Parameterschlüssel erhalten wir den Wert, der dem Schlüssel entspricht.
2. Laden (inputStream Instream), liest die Attributliste (Schlüssel- und Elementpaar) aus dem Eingabestream. Holen Sie sich alle Schlüsselwertpaare in der Datei, indem Sie die angegebene Datei geladen (z. B. die Datei test.Properties oben). Für GetProperty (String -Schlüssel) suchen Sie.
3.. Es legt das Wertschlüsselwertpaar fest, indem die Put-Methode der Basisklasse aufgerufen wird.
4. Store (OutputStream Out, String Comments), schreibt die Eigenschaftsliste (Schlüssel- und Elementpaar) in dieser Eigenschaftentabelle in einem Format in einem Format, das zum Laden in die Eigenschaftentabelle mit der Lastmethode geeignet ist. Im Gegensatz zur Lastmethode schreibt diese Methode Schlüsselwertpaare in die angegebene Datei.
5. Clear (), löschen Sie alle geladenen Schlüsselwertpaare. Diese Methode ist in der Basisklasse bereitgestellt.
Mit den oben genannten Methoden können wir in der Datei .Properties arbeiten!
3.. Java Reading Properties Datei Beispiel
Es gibt ein Eigenschaftendateibox.Properties mit dem folgenden Inhalt:
Color = rotname = boxLength = 18 Width = 7Heigth = 8
Um den Attributwert zu erhalten, können Sie den folgenden Code verwenden:
InputStream in = null; Eigenschaften p = neue Eigenschaften (); try {in = new BuferedInputStream (neuer FileInputStream ("box.Properties"); p.Load (in);} catch (FilenotFoundException e) {// Todo automatisch generiert Catch Block E. Printstacktrace ();} catch (ioException e) {// toDo auto-generiertes block E. printstacktrace ();} Enumeration <Objekt> keys = p.Keys (); while (keys.hasmoreElements ()) {String key = (string) keys.nextElement (); System.out.println (Schlüssel + ":" + p.getProperty (Schlüssel));}oder:
InputStream in; Resourcebundle rb = null; try {in = new BuferedInputStream (neuer FileInputStream ("box.Properties"); rb = new PropertyResourcebundle (in);} catch (FilenotFoundException e1) {// Todo automatisch generierter Block e1.printstacktrace (); rb.getkeys (); while (keys.hasmoreElements ()) {String key = (string) keys.nextElement (); System.out.println (Schlüssel + ":" + rb.getString (Schlüssel)); }}Die Ausgabereihenfolge unterscheidet sich jedoch von der Originaldatei.