Java中逐行读取文件的最快方法 12 月 Questions & Answers 319 如果我需要对文件进行随机访问,那么从文件中逐行读取和解析的最快方法是什么。我想从一个位置搜索到另一个位置,并解析这些位置之间的行
# 1 楼答案 您可以使用NIO包提供的Channels逐行或随机读取文件 但这里有一个警告: BufferedReader允许您逐行读取文件,但它将文件作为记录而不是块进行访问。所以没有随机访问 FileChannel及其子行SeekableByteChannel和WritableByteChannel允许随机读写,但不能逐行读取。如果你知道一行有多少字节,你就可以。在通道中,可以读取字节或字符形式的相同数据。没有什么能阻止你那样做 所以,做一个决定:) 以下是教程:http://docs.oracle.com/javase/tutorial/essential/io/fileio.html Jacob Jenkov对NIO和IO包进行了很好的比较:http://tutorials.jenkov.com/java-nio/nio-vs-io.html
# 1 楼答案
您可以使用NIO包提供的
Channels
逐行或随机读取文件但这里有一个警告:
BufferedReader
允许您逐行读取文件,但它将文件作为记录而不是块进行访问。所以没有随机访问FileChannel
及其子行SeekableByteChannel
和WritableByteChannel
允许随机读写,但不能逐行读取。如果你知道一行有多少字节,你就可以。在通道中,可以读取字节或字符形式的相同数据。没有什么能阻止你那样做所以,做一个决定:)
以下是教程:http://docs.oracle.com/javase/tutorial/essential/io/fileio.html
Jacob Jenkov对NIO和IO包进行了很好的比较:http://tutorials.jenkov.com/java-nio/nio-vs-io.html