Wenn wir normalerweise Programme schreiben, ändern sich einige Parameter häufig, und wir können diese Änderung nicht vorhersagen. Beispielsweise haben wir ein Modul zum Betreiben der Datenbank entwickelt. Während der Entwicklung stellen wir eine Verbindung zur lokalen Datenbank her, sodass die IP, der Datenbankname, der Tabellenname, der Datenbankhost und andere Informationen für uns lokal sind , dann Die oben genannten Informationen können nicht in das Programm geschrieben werden. Normalerweise besteht unser Ansatz darin, Konfigurationsdateien zur Lösung zu verwenden.
Jede Sprache verfügt über ihre eigenen unterstützten Konfigurationsdateitypen. Beispielsweise unterstützt Python .ini-Dateien. Da es über eine interne ConfigParser-Klasse zur Unterstützung des Lesens und Schreibens von .ini-Dateien verfügt, können Programmierer .ini-Dateien gemäß den von dieser Klasse bereitgestellten Methoden frei bearbeiten. In Java unterstützt Java das Lesen und Schreiben von .properties-Dateien. Die im JDK integrierte Klasse java.util.Properties bietet uns die Möglichkeit, .properties-Dateien bequem zu bedienen.
1. .properties-Dateiformat
# 以下为服务器、数据库信息 dbPort = localhost databaseName = mydb dbUserName = root dbPassword = root # 以下为数据库表信息 dbTable = mytable # 以下为服务器信息 ip = 192.168.0.9
In der obigen Datei gehen wir davon aus, dass der Dateiname lautet: test.properties-Datei. Die Zeile, die mit # beginnt, ist eine Anmerkungsinformation; die Zeile auf der linken Seite des Gleichheitszeichens „=" wird als Schlüssel bezeichnet; die Zeile auf der rechten Seite des Gleichheitszeichens „=" wird als Wert bezeichnet. (Tatsächlich handelt es sich dabei um das, was wir oft als Schlüssel-Wert-Paare bezeichnen.) Der Schlüssel sollte eine Variable in unserem Programm sein. Der Wert wird entsprechend der tatsächlichen Situation konfiguriert.
2. Properties-Klasse im JDK
Properties-Klasse existiert in Java.util. Diese Klasse erbt von Hashtable, das mehrere Hauptmethoden bereitstellt:
1. getProperty(String key), durchsucht diese Eigenschaftenliste nach einer Eigenschaft unter Verwendung des angegebenen Schlüssels. Das heißt, über den Parameterschlüssel wird der dem Schlüssel entsprechende Wert erhalten.
2. Load(InputStream inStream), liest eine Liste von Eigenschaften (Schlüssel- und Elementpaare) aus dem Eingabestream. Rufen Sie alle Schlüssel-Wert-Paare in der angegebenen Datei (z. B. der Datei test.properties oben) ab, indem Sie die Datei laden. Für die Suche nach getProperty(String-Schlüssel).
3. setProperty(String key,String value), rufen Sie die Hashtable-Methode put auf. Es legt die Schlüssel-Wert-Paare fest, indem es die Put-Methode der Basisklasse aufruft.
4. store(OutputStream out,String comments) schreibt die Liste der Eigenschaften (Schlüssel- und Elementpaare) in dieser Eigenschaftentabelle in einem Format, das zum Laden in die Eigenschaftentabelle mithilfe der Lademethode geeignet ist, in den Ausgabestream. Im Gegensatz zur Load-Methode schreibt diese Methode Schlüssel-Wert-Paare in die angegebene Datei.
5. clear(), löscht alle geladenen Schlüssel-Wert-Paare. Diese Methode wird in der Basisklasse bereitgestellt.
Mit den oben genannten Methoden können wir die .properties-Datei bearbeiten!
3. Beispiel für eine Java-Eigenschaftendatei
Es gibt eine Eigenschaftendatei box.properties mit folgendem Inhalt:
Color=Red Name=Box Length=18 Width=7 Heigth=8
Get Für die Attributwerte können Sie die folgenden Codes verwenden:
InputStream in = null; Properties p = new Properties(); try { in = new BufferedInputStream(new FileInputStream("box.properties")); p.load(in); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Enumeration<Object> keys = p.keys(); while (keys.hasMoreElements()) { String key = (String) keys.nextElement(); System.out.println(key + ":" + p.getProperty(key)); }
oder:
InputStream in; ResourceBundle rb = null; try { in = new BufferedInputStream(new FileInputStream("box.properties")); rb = new PropertyResourceBundle(in); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (rb != null) { Enumeration<String> keys = rb.getKeys(); while (keys.hasMoreElements()) { String key = (String) keys.nextElement(); System.out.println(key + ":" + rb.getString(key)); } }
Weitere Details Bitte beachten Sie die chinesische PHP-Website für verwandte Artikel zur Methode zum Lesen der Eigenschaftenkonfigurationsdatei durch das Java-Programm!