Properties (Java API)

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen

Properties ist eine vererbte Klasse von HashMap. Bei Properties muss jedoch der Key(Schlüssel) und Value(Wert) von Typ String sein.

Wichtige Methoden der Klasse Properties: <code=java> setProperties(Schlüssel, Wert); </code=java> Erwartet als Parameter 2 Strings. Damit wird ein Wert mit dem dazugehörigen Schlüssel in die Properties eingetragen.

<code=java> getProperties(Schlüssel); </code=java> Liefert den Wert der zu diesem Schlüssel gehört, zurück.

<code=java> list(PrintStream); </code=java> Gibt alle Werte und dazugehören Schlüssel, die in der Properties-Klasse gespeichert sind, zurück.

<code=java> store(OutPutStream, String); </code=java> Speichert alle Werte und dazugehören Schlüssel in eine ASCII-Datei.

<code=java> load(InputStream); </code=java> Lädt alle Werte und dazugehörigen Schlüssel aus einer ASCII-Datei.

<code=java> storeToXML(OutPutStream, String); </code=java> Speichert alle Werte und dazugehören Schlüssel in eine XML-Datei.

<code=java> loadFromXML(InputStream); </code=java> Lädt alle Werte und dazugehörigen Schlüssel aus einer XML-Datei.


Properties setzen und anzeigen

<code=java> public static void setzeProperties(){ Properties pr = new Properties(); pr.setProperty("John Dean","New York"); pr.setProperty("Mark Took","Los Angeles"); pr.setProperty("Chan Lee","Peking"); System.out.println("Chan Lee lebt in "+pr.getProperty("Chan Lee")); System.out.println("Mark Took lebt in "+pr.getProperty("Mark Took")); System.out.println("John Dean lebt in "+pr.getProperty("John Dean")); } </code=java> <code=text> Chan Lee lebt in Peking Mark Took lebt in Los Angeles John Dean lebt in New York </code=text>

Properties verketten

<code=java> public static void verketteProperties(){ Properties defaultP = new Properties(), userP = new Properties(defaultP); defaultP.setProperty("Chan Lee","Peking"); defaultP.list( System.out ); userP.setProperty("Mark Took","Los Angeles"); userP.setProperty("John Dean","New York"); userP.list( System.out ); System.out.println("Chan Lee lebt in "+userP.getProperty("Chan Lee"));

} </code=java> <code=text> -- listing properties -- Chan Lee=Peking -- listing properties -- Mark Took=Los Angeles John Dean=New York Chan Lee=Peking Chan Lee lebt in Peking </code=text>

Properties in eine ASCII-Datei speichern und laden

<code=java> public static void speichereProperties(){ String datei = "properties.txt"; try{ FileOutputStream fos = new FileOutputStream(datei); Properties pr1 = new Properties(System.getProperties()); pr1.setProperty("John Dean","New York"); pr1.setProperty("Mark Took","Los Angeles"); pr1.setProperty("Chan Lee","Peking"); pr1.store(fos, "Name-List"); FileInputStream fis = new FileInputStream(datei); Properties pr2 = new Properties(); pr2.load(fis); pr2.list(System.out);

}catch(FileNotFoundException e1 ){ e1.printStackTrace(); }catch (IOException e2){ e2.printStackTrace(); } } </code=java> <code=text> Konsole:´

-- listing properties -- Mark Took=Los Angeles John Dean=New York Chan Lee=Peking

properties.txt:

  1. Name-List
  2. Mon Feb 26 21:33:17 CET 2007

Mark\ Took=Los Angeles John\ Dean=New York Chan\ Lee=Peking </code=text>


Properties in eine XML-Datei speichern und laden

<code=java> public static void ladeXMLProperties(){ String datei = "properties.xml"; try{ FileInputStream fis = new FileInputStream(datei); FileOutputStream fos = new FileOutputStream(datei); Properties pr = new Properties(); pr.setProperty("John Dean","New York"); pr.setProperty("Mark Took","Los Angeles"); pr.setProperty("Chan Lee","Peking"); pr.storeToXML(fos, "PropertiesXML"); pr.loadFromXML(fis); pr.list(System.out);

}catch(FileNotFoundException e1 ){ e1.printStackTrace(); }catch (IOException e2){ e2.printStackTrace(); } } </code=java> <code=text> Konsole:

-- listing properties -- Mark Took=Los Angeles John Dean=New York Chan Lee=Peking


properties.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>PropertiesXML</comment> <entry key="Mark Took">Los Angeles</entry> <entry key="John Dean">New York</entry> <entry key="Chan Lee">Peking</entry> </properties>

</code=text>