2012-05-01 57 views
7

我用Java編寫的BufferedReader與RandomAccessFile的在Java中

一個小的應用我讀了各種大小的文本文件,我需要看他們一行行(並插入行成陣列)。
就性能而言,BufferedReader.ReadLine()RandomAccessFile.ReadLine()之間是否有區別?

是否有任何理由更喜歡一個或另一個?

+0

*「'BufferedReader.ReadLine()'和'RandomAccessFile.ReadLine()'」*鑑於這兩種方法都不存在,它們非常相似。 ;) –

+1

是的你是對的,但我想通過人們會明白我的意圖:-) – choppy

回答

6

RandomAccessFile.readLine()可能稍微快一些,因爲它忽略了字符編碼。但是它不使用緩衝並仍然使用StringBuffer:P,因此它可能會在系統上變慢。

BufferedReader.readLine()是首選,因爲它處理字符編碼,例如UTF-8或Windows-1252。

還有一個DataInputStream.readLine()可以與BufferedInputStream一起使用。只有使用這個,你可以確定你想要ISO-8859-1或ASCII編碼。

+0

緩衝區的使用情況如何,有人寫道,BufferedReader可能會更快,因爲它使用緩衝區和RandomAccessFile不是,這是真的嗎? – choppy

+0

好點,我可能已經和DataInputStream + BufferedInputStream混淆了。 –