„Heute beschäftigen wir uns mit einem weiteren neuen und interessanten Thema: Immobilien. “
„In Java ist es üblich, Programme flexibel und leicht anpassbar, also leicht konfigurierbar, zu machen.“
„Zum Beispiel kopiert Ihr Programm einmal pro Stunde Dateien aus einem bestimmten Verzeichnis, komprimiert sie und sendet sie Ihnen per E-Mail. Dazu muss das Programm das Verzeichnis kennen, aus dem die Dateien entnommen werden, und die E-Mail-Adresse.“ wohin sie gesendet werden sollen. Solche Daten werden normalerweise nicht im Anwendungscode, sondern in separaten Eigenschaftendateien gespeichert .“
Die Daten in dieser Datei werden als Schlüssel-Wert-Paare gespeichert, getrennt durch ein Gleichheitszeichen.
data.properties file
directory = c:/text/downloads
email = zapp@codegym.cc
„Links vom Zeichen steht der Name (Schlüssel), rechts der Wert.“
„Das ist also eine Art Textdarstellung einer HashMap?“
„Im Allgemeinen ja.“
„Um die Arbeit mit solchen Dateien zu erleichtern, verfügt Java über eine spezielle Properties-Klasse. Die Properties-Klasse erbt Hashtable<Object,Object>. Man kann sie sich sogar als Hashtable vorstellen, die sich selbst aus einer Datei laden kann.“
„Hier sind seine Methoden:“
Methode | Beschreibung |
---|---|
void load(Reader reader) |
Lädt Eigenschaften aus der Datei, die durch ein Reader-Objekt dargestellt wird |
void load(InputStream inStream) |
Lädt Eigenschaften aus der Datei, die durch ein InputStream-Objekt dargestellt wird |
void loadFromXML(InputStream in) |
Laden Sie Eigenschaften aus einer XML-Datei |
Object get(Object key) |
Gibt den Wert für den angegebenen Schlüssel zurück. Diese Methode wird von Hashtable geerbt |
String getProperty(String key) |
Gibt einen Eigenschaftswert (Zeichenfolge) nach Schlüssel zurück. |
String getProperty(String key, String defaultValue) |
Gibt einen Eigenschaftswert nach Schlüssel oder Standardwert zurück, wenn kein solcher Schlüssel vorhanden ist. |
Set<String> stringPropertyNames() |
Gibt eine Liste aller Schlüssel zurück |
„Mit anderen Worten, Sie müssen eigentlich nur zwei Vorgänge ausführen – Daten aus einer Datei in ein Properties- Objekt laden und diese Eigenschaften dann mit der Methode getProperty () abrufen. Nun, und vergessen Sie nicht, dass Sie das Properties- Objekt wie folgt verwenden können.“ eine HashMap .“
„Hier ist ein weiteres Beispiel:“
// The file that stores our project's properties
File file = new File("c:/data.properties");
// Create a Properties object and load data from the file into it.
Properties properties = new Properties();
properties.load(new FileReader(file));
// Get property values from the Properties object
String email = properties.getProperty("email");
String directory = properties.getProperty("directory");
// Get a numeric value from the Properties object
int maxFileSize = Integer.parseInt(properties.getProperty("max.size", "10000"));
„Ah. Also erstellen wir ein Properties-Objekt und übergeben ihm dann eine Datei. An die Load-Methode. Und dann rufen wir einfach getProperty auf. Richtig?“
"Ja."
„Und Sie haben auch gesagt, dass es als HashMap verwendet werden kann? Was meinten Sie?“
„Die Properties-Klasse erbt Hashtable, das mit HashMap identisch ist, aber alle ihre Methoden sind synchronisiert. Sie können alle Werte aus der Properties-Datei einfach wie folgt auf dem Bildschirm anzeigen:“
// Get the file with the properties
File file = new File("c:/data.properties");
// Create a Properties object and load data from the file into it.
Properties properties = new Properties();
properties.load(new FileReader(file));
// Run through all the keys and display their values on the console
for (String key : properties.stringPropertyNames())
{
System.out.println(properties.get(key));
}
„Ah. Alles scheint seinen Platz gefunden zu haben. Danke, Rishi. Ich werde dieses coole Ding benutzen.“
GO TO FULL VERSION