2012-05-01 9 views
7

Sto scrivendo una piccola applicazione in JavaBufferedReader vs. RandomAccessFile in java

Ho letto i file di testo in vari formati e ho bisogno di leggere riga per riga (e inserire la linea in array).
C'è differenza tra BufferedReader.ReadLine() e RandomAccessFile.ReadLine(), in termini di prestazioni?

C'è qualche motivo per preferire l'uno o l'altro?

+0

* "' BufferedReader.ReadLine() 'e' RandomAccessFile.ReadLine() '" * Dato che nessuno dei due metodi esiste, sono abbastanza simili. ;) –

+1

Sì, hai ragione, ma ho capito che le persone capiranno le mie intenzioni :-) – choppy

risposta

6

RandomAccessFile.readLine() potrebbe essere leggermente più veloce perché ignora la codifica dei caratteri. Tuttavia non utilizza il buffering e usa ancora StringBuffer: P in modo che potrebbe essere più lento sul tuo sistema.

BufferedReader.readLine() è preferito perché gestisce la codifica dei caratteri, ad es. UTF-8 o Windows-1252.

C'è anche un DataInputStream.readLine() che può essere utilizzato con BufferedInputStream. Usalo solo per assicurarti la codifica ISO-8859-1 o ASCII.

+0

E a proposito di utilizzo del buffer, qualcuno ha scritto che BufferedReader potrebbe essere più veloce perché usa buffer e RandomAccessFile no, è vero? – choppy

+0

Buon punto, potrei essere stato confuso con DataInputStream + BufferedInputStream. –