2010-08-29 19 views
5

Wie produzieren Sie eine neue Zeile in FileWriter? Es scheint, dass "\ n" nicht funktioniert.Newline in FileWriter

log = new FileWriter("c:\\" + s.getInetAddress().getHostAddress() + ".txt", true);  
log.append("\n" + Long.toString(fileTransferTime)); 
log.close(); 

Die Dateiausgabe des obigen Codes ist nur eine lange Folge von Zahlen ohne die neue Zeile.

+0

Ist das \ t in der zweiten Zeile ein Tippfehler oder absichtlich? Weil \ n sollte funktionieren - AFAIK. –

+2

Ihr Code enthält kein '\ n'. – whiskeysierra

+0

Entschuldigung, ich meinte "\ n". Ich habe es geändert, weil es zu funktionieren scheint. –

Antwort

12

Ich nehme an, dass Sie die .txt Datei im Editor öffnen, die keine Zeilenumbrüche mit nur \n anzeigt.

Haben Sie versucht, Ihre systemspezifische Newline-Zeichenkombination zu verwenden?

log.append(System.getProperty("line.separator") + Long.toString(fileTransferTime)); 
+1

Danke für Ihre Eingaben! Habe gerade herausgefunden, dass Notepad keine "\ n" Zeilenumbrüche anzeigt, während andere Editoren dies tun. Die System.getProperty ("line.separator") führt den Job aus, selbst wenn er in Notepad geöffnet wird. –

1

Versuchen Sie, in der zweiten Zeile \t zu \n zu ändern.

4

sollten Sie entweder einkapseln Ihre FileWriter in eine PrintWriter wenn Ihr Ziel ist ein formated Inhalt haben soll, println() wird Ihnen helfen. Oder verwenden Sie die Systemeigenschaft line.separator, um ein an Ihr Betriebssystem angepasstes Trennzeichen zu erhalten.

System.getProperty("line.separator") 

Ressourcen:

+0

Vielen Dank, System.getProperty ("line.separator") funktioniert. :) –

2

Ich bin mit "\ r \ n" und es funktioniert gut für mich. Auch beim Öffnen .txt Dokument im Editor;)

+1

Um plattformunabhängig zu sein, solltest du das nicht fest codieren. Z.B. Unix-Systeme verwenden '\ n'. Und es ist eine Schande, dass so viele Leute dies auffrischten, da die anderen Antworten viel besser sind. – nkr