Java中逐行读取文件的最快方法
如果我需要对文件进行随机访问,那么从文件中逐行读取和解析的最快方法是什么。我想从一个位置搜索到另一个位置,并分析这些位置之间的行。您可以使用NIO软件包提供的Java中逐行读取文件的最快方法,java,Java,如果我需要对文件进行随机访问,那么从文件中逐行读取和解析的最快方法是什么。我想从一个位置搜索到另一个位置,并分析这些位置之间的行。您可以使用NIO软件包提供的通道来逐行或随机读取文件。 但这里有一个警告: BufferedReader允许您逐行读取文件,但它将文件作为记录而不是块进行访问。因此不存在随机访问。 FileChannel及其子行seekablebytechnel和writeablebytechannel允许随机读写,但不能逐行读取。如果你知道一行有多少字节,你就可以。在通道中,可以读
通道来逐行或随机读取文件。
但这里有一个警告:
BufferedReader
允许您逐行读取文件,但它将文件作为记录而不是块进行访问。因此不存在随机访问。
FileChannel
及其子行seekablebytechnel
和writeablebytechannel
允许随机读写,但不能逐行读取。如果你知道一行有多少字节,你就可以。在通道中,可以读取字节或字符形式的相同数据。没有什么能阻止你那样做
所以,做一个决定:)
以下是教程:
Jacob Jenkov对NIO和IO包进行了很好的比较:我已经回答了这个问题。看看@AlexR op需要随机访问该文件!我正在使用RandomAccessFile,但当我解析大量行时,它的工作速度很慢!阅读行和随机访问是互斥的,除非所有行的长度相同。