Java中逐行读取文件的最快方法

Java中逐行读取文件的最快方法,java,Java,如果我需要对文件进行随机访问,那么从文件中逐行读取和解析的最快方法是什么。我想从一个位置搜索到另一个位置,并分析这些位置之间的行。您可以使用NIO软件包提供的通道来逐行或随机读取文件。 但这里有一个警告: BufferedReader允许您逐行读取文件,但它将文件作为记录而不是块进行访问。因此不存在随机访问。 FileChannel及其子行seekablebytechnel和writeablebytechannel允许随机读写,但不能逐行读取。如果你知道一行有多少字节,你就可以。在通道中,可以读

如果我需要对文件进行随机访问,那么从文件中逐行读取和解析的最快方法是什么。我想从一个位置搜索到另一个位置,并分析这些位置之间的行。

您可以使用NIO软件包提供的
通道来逐行或随机读取文件。
但这里有一个警告:

BufferedReader
允许您逐行读取文件,但它将文件作为记录而不是块进行访问。因此不存在随机访问。
FileChannel
及其子行
seekablebytechnel
writeablebytechannel
允许随机读写,但不能逐行读取。如果你知道一行有多少字节,你就可以。在通道中,可以读取字节或字符形式的相同数据。没有什么能阻止你那样做

所以,做一个决定:)

以下是教程:


Jacob Jenkov对NIO和IO包进行了很好的比较:

我已经回答了这个问题。看看@AlexR op需要随机访问该文件!我正在使用RandomAccessFile,但当我解析大量行时,它的工作速度很慢!阅读行和随机访问是互斥的,除非所有行的长度相同。