如果我需要对我的文件进行randomaccess,那么从文件中逐行读取和解析的最快方法是什么。我想从一个位置寻找另一个位置并解析这些位置之间的界限。
答案 0 :(得分:0)
您可以使用NIO包提供的Channels
逐行或随机读取文件
但这里有一个警告:
BufferedReader
允许您逐行读取文件,但它将它们作为记录而不是块进行访问。所以没有随机访问
FileChannel
及其子行[{1}}和SeekableByteChannel
允许随机读写但您无法逐行读取。好吧,如果你知道一行中有多少字节,你可以。在通道中,您可以读取与字节或字符相同的数据。没有什么可以阻止你这样做。
所以,做出决定:))
以下是教程:http://docs.oracle.com/javase/tutorial/essential/io/fileio.html
Jacob Jenkov对NIO和IO包进行了很好的比较:http://tutorials.jenkov.com/java-nio/nio-vs-io.html