Martin Jung: FileOutputStream mit Datei innerhalb des Projekts erzeugen

Beitrag lesen

Hi,

Die Datei soll immer am selben Ort innerhalb der Package-Struktur sein,

Auf welcher Baumebene beginnt die Package-Struktur? (gemäß Java-Konvention erwarte ich nach einem Ordner namens "de"..).

also z.B.

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

Nur wie bekomme ich diesen FileOutputStream auf diese Datei?

Annahme: "MeinProgramm" ist das Top-Level Package.

// holen der URL
URL url = getClass().getResource("/MeinProgramm/Properties/user.properties");

hinweis: wenn die Klasse, die die Generation des OutputStreams übernimmt, im Package Properties liegt, genügt der Parameter "user.properties" (ohne führendes "/"!!!)

// String Repräsentation der entsprechenden Datei
String filePath = url.getFile();

// OutputStream erzeugen
OutputStream os = new FileOutputStream(filePath);

if (url.getProtocol().indexOf("jar") == -1 ) {
    myProperties.store(os....);
}

Dies ist eine (ungetestete) Möglichkeit.

Viele Grüße,
Martin Jung