我使用包裹在LineNumberReader中的FileReader为大型文本文件建立索引,以便以后快速访问。麻烦是我似乎找不到直接读取特定行号的方法。 BufferedReader支持skip()函数,但是我需要将行号转换为字节偏移量(或首先索引字节偏移量)。
我使用RandomAccessFile对其进行了破解,虽然它起作用了,但是在初始索引编制过程中它的运行速度非常慢。 BufferedReader的速度非常好,但是...嗯,您看到了问题。
一些关键信息:
文件可以是任何大小(当前35,000行)
它存储在Android的内部文件系统中(确切地说是通过getFilesDir())
不幸的是,格式不是固定宽度的(因此需要按行读取)
有任何想法吗?
最佳答案
Describes an extended RandomAccessFile with buffering semantics
关于java - 如何将文件的行号转换为字节偏移量(或使用BufferedReader获取每行开头的字节偏移量)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6380833/