2013-10-11 107 views
0

從文件中逐行讀取和解析的最快方法是什麼,如果我需要對我的文件有randomaccess。我想從一個位置到另一個位置尋找並解析這些位置之間的界限。在Java中逐行讀取文件的最快方法

+0

我已經回答了這個問題。看看http://stackoverflow.com/questions/5035894/fastest-way-to-read-a-file-line-by-line-with-2-sets-of-strings-on-each-line/ 5035998#5035998 – AlexR

+0

[RandomAccessFile](http://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html) – Anirudha

+0

@AlexR op需要隨機訪問文件! – Anirudha

回答

0

您可以使用NIO軟件包提供的Channels來逐行讀取文件或隨機讀取文件。
但是,這裏需要注意的是:

BufferedReader允許您逐行讀取文件,但它將它們作爲記錄而不是作爲塊訪問。所以沒有隨機存取。
FileChannel及其子線SeekableByteChannelWritableByteChannel允許隨機讀取和寫入,但不能逐行閱讀。那麼,如果你知道一行中有多少個字節,你可以。在通道中,您可以讀取與字節相同的數據或字符。沒有什麼可以阻止你這樣做。

因此,做出決定:)

這裏是教程:http://docs.oracle.com/javase/tutorial/essential/io/fileio.html

雅各布Jenkov具有NIO和IO包之間的良好對比:http://tutorials.jenkov.com/java-nio/nio-vs-io.html

相關問題