Properties (Java API)
Aus Byte-Welt Wiki
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:
setProperties(Schlüssel, Wert);
Erwartet als Parameter 2 Strings. Damit wird ein Wert mit dem dazugehörigen Schlüssel in die Properties eingetragen.
getProperties(Schlüssel);
Liefert den Wert der zu diesem Schlüssel gehört, zurück.
list(PrintStream);
Gibt alle Werte und dazugehören Schlüssel, die in der Properties-Klasse gespeichert sind, zurück.
store(OutPutStream, String);
Speichert alle Werte und dazugehören Schlüssel in eine ASCII-Datei.
load(InputStream);
Lädt alle Werte und dazugehörigen Schlüssel aus einer ASCII-Datei.
storeToXML(OutPutStream, String);
Speichert alle Werte und dazugehören Schlüssel in eine XML-Datei.
loadFromXML(InputStream);
Lädt alle Werte und dazugehörigen Schlüssel aus einer XML-Datei.
Properties setzen und anzeigen
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")); }
Chan Lee lebt in Peking Mark Took lebt in Los Angeles John Dean lebt in New York
Properties verketten
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")); }
-- listing properties -- Chan Lee=Peking -- listing properties -- Mark Took=Los Angeles John Dean=New York Chan Lee=Peking Chan Lee lebt in Peking
Properties in eine ASCII-Datei speichern und laden
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(); } }
Konsole:´ -- listing properties -- Mark Took=Los Angeles John Dean=New York Chan Lee=Peking properties.txt: #Name-List #Mon Feb 26 21:33:17 CET 2007 Mark\ Took=Los Angeles John\ Dean=New York Chan\ Lee=Peking
Properties in eine XML-Datei speichern und laden
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(); } }
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>