文件:a.txt
内容:
aaaa
bbbb
cccc[index]
dddd
eeee
ffff
....求教:如何直接从[index]这行开始读取文件,而不是从第一行读然后再判断标识符?大侠们帮帮忙,急,先谢过了.

解决方案 »

  1.   

    简单的另一种设计
    在文件头设计一段索引区,定义x块长度
    每块有专门的用途,比如1-10个字符记录【index】所在行数。或者是二进制数组位置
    一般这种做法都不是读行的都是直接定位二进制的。
    当然读行也行,但是读行的话就必须一行行读。
      

  2.   

    用RandomAccessFile的seek方法,不过前提就是你要能知道[index]前面的内容有多少个字节的长度。
      

  3.   

    先感谢下楼上各位的热心回复,现在的需求是,文件里不知道[index]前边有多少行数据,文件内容是机器返回的一些信息值.
      

  4.   

    能不能把index前的删掉在读啊
      

  5.   

    不创建索引的,文件的格式也是不固定的,因为[index]前边有多少行是未知的.
      

  6.   

    BufferedReader循环{
      读取一行
      if 行==“[index] "
        退出循环
    }开始读取你的数据啦。以上是伪代码
      

  7.   


    我现在写的代码就是你这种想法的  第一次读取[index]标识以前的代码,退出循环后再读取的.但是被我们组长给否定了,要求我直接从[index]行开始读,而且前边有多少行还是未知的,也不可能根据行号去读.我觉得应该是我们组长的需求有问题了吧.先揭贴了,感谢各位了.  
      

  8.   

    如果每行的信息,是已经排序的话,楼主可以使用折半查找法,进行标识行的查找。
    如果每行信息不是排序的,那,目前只能逐行查找。就楼主给出的例子而言,是可以使用折半查找法的(配合RandomAccessFile类进行)。