如果我需要随机访问我的文件,从文件中逐行读取和解析的最快方法是什么。我想从一个位置寻找另一个位置并解析这些位置之间的线。
问问题
328 次
1 回答
0
您可以使用Channels
NIO 提供的包来逐行或随机读取文件。
但这里有一个警告:
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
于 2013-10-11T10:51:43.540 回答