2009-02-16 20 views
5

W jaki sposób można uzyskać zawartość pliku tekstowego, zachowując to, czy ma on znak nowej linii na końcu pliku? Przy użyciu tej techniki nie można stwierdzić, czy plik kończy się znakiem nowej linii:Java: Odczytywanie nowej linii z pliku tekstowego

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

Jeśli używasz BufferedWriter, można również użyć metoda .newline: http://stackoverflow.com/questions/9199216/strings-written-to-file-do-not-preserve-line-breaks –

Odpowiedz

0

Możesz przeczytać całą zawartość pliku przy użyciu jednej z metod wymienionych here

mój ulubiony to ten:

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

Nie należy używać readLine(); przesyłaj zawartość po jednym znaku za pomocą metody read(). Jeśli użyjesz go na BufferedReader, będzie to miało taką samą wydajność, chociaż w przeciwieństwie do twojego kodu powyżej nie będzie "znormalizować" podziałów linii CR/LF w stylu Windows.

Powiązane problemy