Java Properties

Eine Benutzerkonfiguration wird zum Beginn einer Anwendung geladen. Während ihres Laufs werden die verschiedensten Paramter geändert und zum Ende gespeichert.

Für den Zugriff auf die Konfiguration werden Pfad, Name, Parameter-Schlüssel und die Konfiguration (params) selbst global festgelegt.

[code lang=“java“]public static final String CONFIG_PATH =
System.getProperty(„user.home“) +
System.getProperty(„file.separator“) +
„.app“;

public static final String CONFIG_FILE =
„convert.properties“;

public static final String PARAM_XYZ = „param.xyz“;

private Properties params = new Properties();[/code]

Beim Start der Anwendung wird geprüft, ob das Verzeichnis für die Konfiguration vorhanden ist. Wenn dies nicht der Fall ist, wird das Verzeichnis angelegt und eine möglicherweise vorhandene Konfiguration eingelesen.

[code lang=“java“]try {

File confDir = new File(CONFIG_PATH);
if(! confDir.exists()) confDir.mkdir();

String config = CONFIG_PATH +
System.getProperty(„file.separator“) +
CONFIG_FILE;

File c = new File(config);

if( c.exists() ){
FileInputStream in = new FileInputStream(config);
params.load(in);
in.close();
}

} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}[/code]

Nach dem Laden hat man über den Parameter-Schlüssel Zugriff auf die Werte der Konfiguration. Ist ein Schlüssel nicht definiert, wird null geliefert.

[code lang=“java“]params.getProperty(PARAM_XYZ)[/code]

Geändert wird ein Parameter ebenfalls über seinen Schlüssel.

[code lang=“java“]params.setProperty(PARAM_XYZ, „abcd“);[/code]

Am Ende müssen alle aktuellen Werte gespeichert werden.

[code lang=“java“]try {
String config = CONFIG_PATH +
System.getProperty(„file.separator“) +
CONFIG_FILE;;

FileOutputStream out = new FileOutputStream(config);
properties.store(out, „Lokale Konfiguration“);
out.close();

} catch (Exception e) {
e.printStackTrace();

}[/code]

Beim Speichern ist zu beachten, das alle gewollten Möglichkeiten – das Programm zu Beenden – beachtet werden. So kommen in einem typischen GUI die Titelleiste, ein Menüeintrag und ein Toolbar-Button in Frage.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.