Slyh: FileOutputStream mit Datei innerhalb des Projekts erzeugen

Beitrag lesen

Hallo,

Was willst du denn erreichen?
Ich will eine Property-Datei schreiben (mittels

myProperty.store(outputStream, ...);

Die Datei soll immer am selben Ort innerhalb der Package-Struktur sein, also z.B.

c:/bla/blub/MeinProgramm/Properties/user.properties
aber auch
c:/wherever/MeinProgramm/Properties/user.properties

Naja, wie gesagt, das geht nicht, da sich die Dateien in einem JAR
befinden könnten. Und diese Möglichkeit solltest du immer bedenken!

Nur wie bekomme ich diesen FileOutputStream auf diese Datei?

Ich würde das so nicht versuchen.

Speichere die Properties-Datei doch besser in das Home-Verzeichnis
des Benutzers. Dieses Verzeichnis kannst du über die System-Property
"user.home" ermitteln. (Siehe java.lang.System.getProperty())

Als Grundlage für die spezifische Property-Datei des Benutzers
verwendest du einfach die o.g. Property-Datei aus dem JAR-Archiv bzw.
dem Classpath.

Immer wenn du die Einstellungen lesen möchtest, guckst du erst im
Home-Verzeichnis des Benutzers nach, ob da schon die Property-Datei
liegt. Wenn nicht, legst du sie dort an. (Die Datei sollte natürlich
einen möglichst eindeutigen Namen haben.)
Existiert sie dort schon, kannst du sie ja lesen (und dann auch
schreiben.)

Gruß
Slyh