2009-02-16 9 views
5

Comment obtenir le contenu d'un fichier texte tout en préservant s'il a un saut de ligne à la fin du fichier? En utilisant cette technique, il est impossible de dire si le fichier se termine par un saut de ligne:Java: lecture de la nouvelle ligne à partir d'un fichier texte

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

Si vous utilisez un BufferedWriter, vous pouvez également utiliser la méthode .newline: http://stackoverflow.com/questions/9199216/strings-written-to-file-do-not-preserve-line-breaks –

Répondre

0

Vous pouvez lire tout le contenu de fichiers en utilisant l'une des techniques énumérées here

Mon préféré est celui-ci:

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

Ne pas utiliser readLine(); transférer le contenu un caractère à la fois en utilisant la méthode read(). Si vous l'utilisez sur un BufferedReader, cela aura les mêmes performances, bien que contrairement à votre code ci-dessus, il ne «normalisera» pas les sauts de ligne CR/LF de style Windows.

Questions connexes