2009-02-16 16 views
5

Wie können Sie den Inhalt einer Textdatei abrufen, während Sie sicherstellen, dass am Ende der Datei ein Zeilenumbruch vorhanden ist? Mit dieser Technik ist es unmöglich zu sagen, ob die Datei in einer Neuen-Zeile endet:Java: Lesen der folgenden neuen Zeile aus einer Textdatei

BufferedReader reader = new BufferedReader(new FileReader(fromFile)); 
StringBuilder contents = new StringBuilder(); 

String line = null; 
while ((line=reader.readLine()) != null) { 
    contents.append(line); 
    contents.append("\n"); 
} 
+0

Wenn Sie eine BufferedWriter verwenden, können Sie auch die .newline Methode: http://stackoverflow.com/questions/9199216/strings-written-to-file-do-not-preserve-line-breaks –

Antwort

0

Sie können die gesamte Dateiinhalt lesen unter Verwendung einer der Techniken here aufgeführt

Mein Favorit ist dieses:

public static long copyLarge(InputStream input, OutputStream output) 
     throws IOException { 
    byte[] buffer = new byte[DEFAULT_BUFFER_SIZE]; 
    long count = 0; 
    int n = 0; 
    while ((n = input.read(buffer))>=0) { 
     output.write(buffer, 0, n); 
     count += n; 
    } 
    return count; 

}

7

Sie nicht verwenden readline(); Übertragen Sie den Inhalt mit der Methode read() jeweils um ein Zeichen. Wenn Sie es auf einem BufferedReader verwenden, wird dies die gleiche Leistung haben, obwohl es im Gegensatz zu Ihrem obigen Code keine CR/LF-Zeilenumbrüche im Windows-Stil "normalisiert".

Verwandte Themen