2009-02-16 13 views
5

¿Cómo se puede obtener el contenido de un archivo de texto conservando al mismo tiempo si tiene una nueva línea al final del archivo? Usando esta técnica, es imposible decir si el archivo termina en un salto de línea:Java: leyendo la nueva línea rastreada desde un archivo de texto

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 está utilizando un BufferedWriter, se podría también utilizar el método .newline: http://stackoverflow.com/questions/9199216/strings-written-to-file-do-not-preserve-line-breaks –

Respuesta

0

Puede leer todo el contenido del archivo usando una de las técnicas que se enumeran here

Mi favorito es éste:

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

No utilice readLine(); transfiere los contenidos de a uno por vez usando el método read(). Si lo usa en un BufferedReader, tendrá el mismo rendimiento, aunque a diferencia de su código anterior, no "normalizará" saltos de línea CR/LF estilo Windows.

Cuestiones relacionadas