Properties (Java API)

Aus Byte-Welt Wiki
Wechseln zu: Navigation, Suche

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>
Meine Werkzeuge