# NetBeans: Konfigurationsdatei in JAR-Archiv einbetten?



## babuschka (19. Jul 2007)

Hallo Forum!

Ich habe da ein Java-Programm, dass frei verfügbar ist. Die Konfigurationsdatei "config.cfg" wird bei Programmstart geöffnet, zeilenweise ausgelesen und entsprechende Variablen werden befüllt.

Dass die Konfigurationsdatei als sichtbare Datei im gleichen Verzeichnis wie das Programm liegt, hat mehrere Nachteile:
- es sieht unschön aus 
- manch ein Nutzer kommt auf die Idee, er könne durch händisches editieren der Datei Funktionen im Programm erreichen, die sich durch die Konfigurationsseite nicht einstellen lassen
- wird die Datei gelöscht (unabsichtlich oder absichtlich), kann das Programm nicht mehr starten

Daher möchte ich die Datei in das JAR-Archiv einbetten. Das klappt soweit auch, allerdings stellt sich nun die Frage, wie ich auf die Datei zugreifen kann - und zwar am besten zeilenweise wie bei einem BufferedReader?


----------



## NTB (19. Jul 2007)

Such mal nach dem Stichwort: GetResourceAsStream
...und konsultiere Google
...und die FAQ!

und dann frag nochmal.


----------



## babuschka (23. Jul 2007)

Ja, also lesen kann ich jetzt via

```
BufferedReader in=new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/steuerung/konfig.cfg")));
```
wunderbar, aber über getResourceAsStream bekomme ich ja einen InputStream, den ich logischerweise nicht dazu benutzen kann, um in die Datei zu schreiben.

Rein von der Struktur her müsste es eigentlich mit

```
File testfile=new File(getClass().getResource("/steuerung/konfig.cfg").getFile());
konfigdatei = new BufferedWriter(new FileWriter(testfile,false));
```
gehen, das bringt mir dann aber eine java.io.FileNotFoundException ein.
Als Pfad wird gebildet:

```
file:/Users/jens/Schichtplaner/dist/Schichtplaner.jar!/steuerung/konfig.cfg
```
was ja auch nicht falsch aussieht.

Ooder bin ich mit dem Wunsch, in das JAR-Archiv zu schreiben, auf dem Holzweg?
Wie speichert man denn dann plattformunabhängig und unauffällig (also nicht im Programmverzeichnis) Programmeinstellungen?


----------

