Ich habe folgendes Problem: Ich habe ein Programm, bie dem in einer for-Schleife ein String gebastelt wird. Hier gibt es keine Probleme. Innerhalb des Strings gibt es Zeilenumbrüche("
"). Wenn ich diesen String auf einer JTextArea ausgebe, dann läuft alles wie geschmiert. Wenn ich jetzt aber den String in eine .txt schreiben will, dann verschwinden die Zeilenümbrüche. Wenn ich bei jedem Schleifendurchlauf den generierten Teilstring einzeln an eine erzeugte .txt anfügen will, dann wird der Inhalt jedes Mal überschrieben und nur der letzte tempString verbleibt in der Datei. Wie kann ich dieses Problem lösen? Wie gesagt: entweder kompletten String inkl. Zeilenumbrüchen oder jeden Teilstring in einer neuen Zeile der.txt. Ich arbeite mit dem FileWriter, sollte ich eine andere Klasse benutzen? Ich hab schon vom Printwriter gehört, aber ich sträube mich da ein wenig gegen, wiel ich denke, dass in eine File mit einem Filewriter geschrieben werden solte.
Ideen:
Umbrüche im String durch Filewriter berücksichtigen: nein, keine Idee
Neue Zeile mit Teilstring anfangen: Ja, immer am Ende der .txt beginnen zu schreiben, satt alles zu überschreiben, aber wie bringe ich das dem Filewriter bei?
Ich hoffe ihr habt mein Problem verstanden und könnt mir helfen.
Egal was ich mache, das "
" wird konsewunt ignoriert. Egal ob ich es direkt im übergebenen String mitgebe oder die append-Methode mit dem character aufrufe. Am Ende der Datei schreiben geht, genauso wie vorher schon, aber eben keine Zeilenumbrüche.
Du hast eine Lösung schon erhalten, PrintWriter. Die hast du ignoriert, zweimal.
ist kein Zeilenumbruch an sich. Bist du sicher dass der Zeilenumbruch für dein System auch
lautet?
Mit System.lineSeparator();
kriegst du den in deinem System spezifizierten newline character zurück. (Den solltest du dir vielleicht in einer statischen Variable ‘N’ oder so, speichern)
Kannst ihn spaßeshalber auch gerne mal in die Konsole schreiben lassen.
PrintWriter macht das automatisch.
Mein Tipp:
Du erzeugst den FileWriter in jedem Durchlauf der Schleife neu.
Das führt dann dazu, dass die Datei in jedem Schleifendurchlauf wieder ab Position 0 beschrieben wird.
@TMII : ich hab das zwar nicht erwähnt, aber ich habe sowohl FileWriter als auch Printwriter benutzt. Mit beiden kann ich zwar am Ende der Datei weiter schreiben, aber wie Du in deinem Post schreibst, scheinen nicht die Streams das Problem zu sein, sondern der falsche LineSeperator. Den Tipp werd ich aufgreifen,wenn ich einigermaßen wach bin;-) Danke dafür und für alle anderen Hilfestellungen:-)