我用BufferedReader来读取文本文件时,想记录某些特殊行在文件中的位置,便于下次查找时快速定位。
但BufferedReader没有RandomAccessFile那样的getFilePointer函数,所以我无法获取当前偏移量。
从性能上考虑,我也不可能改用RandomAccessFile来读文件,请问该如何解决这个问题

解决方案 »

  1.   

    java.io.LineNumberReader类
    可以按行读取字符文件,并获取行号
      

  2.   

    LineNumberReader可以获取行号,但下次打开文件时,如何根据记录的行号快速定位到这一行呢。
    我看了看javadoc, setLineNumber不能实现定位。
    我所操作的文件都有上百M,如果不能快速定位的话很影响性能,多谢指教
      

  3.   

    用行来标识肯定不能随机存储了
    你的要求用RandomAccessFile不就能实现吗?
      

  4.   

    BufferedReader的(int readAheadLimit)满足你的需求吗?