NotePad erkennt keine neuen Zeilenzeichen in Java-Code, die PrintStream zur Ausgabe in eine Textdatei verwenden

8

Ich brauche Hilfe mit meinem Java-Projekt für die Schule. Bitte beachten Sie den folgenden Code für die Klassen Book und BookApplication, sowie die Eingabetextdatei und die gewünschte Ausgabetextdatei.

Ich habe ein Problem mit der Ausgabedatei. Wenn ich es in Word oder WordPad oder NotePad ++ öffne, wird die Datei korrekt formatiert. Aber wenn ich die Datei in NotePad öffne, ist der Bericht alle in einer Zeile.

Aus irgendeinem Grund erkennt NotePad die neuen Zeilenzeichen nicht. Irgendwelche Gedanken dazu? Wie kann ich den Java-Code ändern, damit NotePad den Bericht korrekt anzeigt? Ich bin ein Java-Noob und ich kämpfe wirklich in diesem Java-Kurs. Jede Hilfe, die Sie anbieten können, wäre sehr geschätzt. Danke.

Die Eingabetextdatei namens inBook.txt lautet wie folgt:

Einführung in Java 0123444555680 Tony Gaddis TG003 Einführung in Javascript 9780071632969 John Pollock JP402 Grundlagen der Spieleentwicklung 9780763778 Heather Maxwell Chandler HC026

Die Ausgabetextdatei outBook.txt muss genau wie folgt lesen:

Dean Publishers - Liste der Bücher

Einführung in Java Von Tony Gaddis (TG003) ISBN: 0123444555680

Einführung in Javascript Von John Pollock (JP402) ISBN: 9780071632969

Grundlagen der Spieleentwicklung Von Heather Maxwell Chandler (HC026) ISBN: 9780763778

Unser aktueller Katalog enthält 3 Bücher.

Danke für Ihr Interesse.

// Book.java

%Vor%

BookApplication.java

%Vor%     
user644996 05.04.2011, 20:19
quelle

3 Antworten

19

Sie verwenden das Zeichen \n für neue Zeilen, was für * nix korrekt ist. In Windows ist es \r\n . Wenn Sie sich nicht darum kümmern möchten, auf welcher Plattform Sie sich befinden, können Sie Folgendes verwenden:

%Vor%

Um dieses Token zu bekommen. Auf diese Weise wird Ihr Programm auf jeder Plattform funktionieren.

Update: Es sieht so aus, als ob Sie in Java 7 einfach System.lineSeparator () .

    
Kirk Woll 05.04.2011 20:24
quelle
11

Sie benötigen \r\n ( 0x0D 0x0A ) unter Windows, um eine Zeile zu beenden, und zwei Paare, um eine leere Zeile auszugeben.

    
Ken White 05.04.2011 20:22
quelle
5

Versuchen Sie es mit dem Systemzeilentrennzeichen (\ r \ n in Windows wie angegeben)

%Vor%     
David Oliván Ubieto 05.04.2011 20:27
quelle

Tags und Links