Ich versuche, ein Programm zu schreiben, das Unicode-Strings aus einer Datei gelesen manipuliert. Ich dachte über zwei Ansätze nach - einen, bei dem ich die ganze Datei mit Zeilenumbrüchen einliest, ein paar Regex-Substitutionen vornehme und sie in eine andere Datei zurückschreibe; das andere, wo ich Zeile für Zeile in der Datei lese und einzelne Zeilen anpasse und an sie setze und schreibe sie aus. Ich konnte den ersten Ansatz nicht testen, da die Zeilenumbrüche in der Zeichenfolge nicht als Zeilenumbrüche in die Datei geschrieben werden. Hier ist ein Beispiel-Code zu veranschaulichen:Newlines in Zeichenfolge nicht in Datei schreiben
String output = "Hello\nthere!";
BufferedWriter oFile = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("test.txt"), "UTF-16"));
System.out.println(output);
oFile.write(output);
oFile.close();
Die print-Anweisung gibt
Hallo
da!
aber die Dateiinhalte sind
Hellothere!
Warum werden meine Zeilenvorschübe nicht in die Datei geschrieben?
Notepad kann Textdateien nicht ordnungsgemäß mit \ n anzeigen. – akarnokd
Sehen Sie, ob es immer noch mit \ r \ n funktioniert –
Ja, ich habe es gerade ausprobiert und es funktioniert. Es ist komisch, aus irgendeinem Grund erinnere ich mich, dass Notepad zumindest ein Zeichenzeichen nicht anzeigt, wenn es nur eine 0x0A selbst gesehen hat, aber ich denke nicht. –