2012-05-01 19 views
7

estoy escribiendo una pequeña aplicación en JavaBufferedReader vs RandomAccessFile en Java

leí archivos de texto en varios tamaños y necesito leer línea por línea (e inserte la línea en serie).
¿Hay diferencia entre BufferedReader.ReadLine() y RandomAccessFile.ReadLine(), en términos de rendimiento?

¿Hay alguna razón para preferir una u otra?

+0

* "' BufferedReader.ReadLine() 'y' RandomAccessFile.ReadLine() '" * Dado que ninguno de los dos métodos existe, son bastante similares. ;) –

+1

Sí, tienes razón, pero pensé que la gente entenderá mi intención :-) – choppy

Respuesta

6

RandomAccessFile.readLine() puede ser un poco más rápido porque ignora la codificación de caracteres. Sin embargo, no utiliza el almacenamiento en búfer y todavía utiliza StringBuffer: P, por lo que podría ser más lento en su sistema.

Se prefiere BufferedReader.readLine() porque maneja la codificación de caracteres, p. UTF-8 o Windows-1252.

También hay un DataInputStream.readLine() que se puede utilizar con BufferedInputStream. Solo use esto, puede estar seguro de que quiere la codificación ISO-8859-1 o ASCII.

+0

¿Qué hay del uso del búfer, alguien escribió que BufferedReader podría ser más rápido porque usa el búfer y RandomAccessFile no, es cierto? – choppy

+0

Buen punto, puede que me hayan confundido con DataInputStream + BufferedInputStream. –

Cuestiones relacionadas