2009-02-16 9 views
5

Come si può ottenere il contenuto di un file di testo preservando se ha o meno una fine riga alla fine del file? Utilizzando questa tecnica, è impossibile dire se il file termina con un ritorno a capo:Java: lettura di una nuova riga finale da un file di testo

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

Se si utilizza un BufferedWriter, si potrebbe anche usare il metodo .newline: http://stackoverflow.com/questions/9199216/strings-written-to-file-do-not-preserve-line-breaks –

risposta

0

È possibile leggere l'intero contenuto del file utilizzando una delle tecniche elencate here

Il mio preferito è questo:

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

Non utilizzare readLine(); trasferisci il contenuto di un carattere alla volta usando il metodo read(). Se lo usi su BufferedReader, questo avrà le stesse prestazioni, sebbene diversamente dal tuo codice sopra non "normalizzerà" le interruzioni di riga CR/LF in stile Windows.

Problemi correlati