txt Datei speichern

das_leon

Mitglied
Hi,
ich habe ein Problem. Wenn ich etwas in eine .txt Datei reinschreibe und ich dann den BufferedWriter mit bw.close() schließe, passt alles. Aber wenn ich das Programm erneut öffne, wird der aktuelle Inhalt mit dem Neuen überschrieben.
Wie kann ich das verhindern? Der alte Inhalt muss also gespeichert werden und der neue Inhalt drunter geschrieben werden.

Grüße,
Léon
 
Ich kenne mich mit dem BufferedWriter zwar nicht aus aber ich denke das Problem liegt darin, dass dieser in deine Datei immer nur das rein schreibt was du im mitgibst. Das heißt, dass er den alten Inhalt einfach überschreibt. Du müsstest also zuerst den aktuellen Inhalt auslesen (ich denke das funktioniert mit einem BufferedReader), an diesen deinen neuen Inhalt anfügen und das dann in die Datei schreiben.
 
Ein Beispiel:
Java:
        try {
            ...
            FileWriter fw = new FileWriter("datei.txt", false);
            BufferedWriter bw = new BufferedWriter(fw);
            pWriter = new PrintWriter(bw);
            pWriter.println("" + full_string);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (pWriter != null) {
                pWriter.flush();
                pWriter.close();
            }
In der Zeile
FileWriter fw = new FileWriter("datei.txt", false);
ist append auf false gesetzt. Deshalb wird der alte Inhalt überschrieben. Du solltest es also auf true stellen.
 
Danke.
Nun habe ich in einem anderen Programm das selbe Problem. Der Code:
Java:
String pfad = zeile2 + "\\Fahrer.csv";
                    FileWriter fw;
                    fw = new FileWriter(pfad, false);
                    BufferedWriter bw = new BufferedWriter(fw);
                    PrintWriter pWriter = new PrintWriter(bw);
                    pWriter.println("hi;hi;hi;hi");
                    pWriter.close();

Leider wird auch hier die Datei überschrieben. Das Semikolon ist der Spaltentrenner der CSV-Datei.
Auch wenn ich
Java:
bw.write("hi;hi;hi);
bw.close();
eingebe, wird die Datei überschrieben.


PS: Frohe Weihnachten an alle 🙂
 
Danke. Ich hab den Eintrag heute nur überflogen. Ich dachte das false bedeutet, dass es nicht überschrieben werden soll. Ich habe ne Stunde herumprobiert, aber darauf bin ich noch nicht gekommen. Ist ja auch schon spät 😀
 

Zurück
Oben