Make BufferedReader是从.txt文件的中间开始而不是从头开始?

时间:2011-05-02 09:52:09

标签: java android

我有一个包含近6000行的LONG .txt文件!有时我需要检索信息。在第5000行。是否可以从第5000行开始阅读而不是从头开始阅读?

感谢。

3 个答案:

答案 0 :(得分:3)

6000线是否长,取决于平均线长。即使每行100个字符,这也不会很长。

然而,如果您知道第5000行的起点,您可以从第5000行读取。不幸的是,大多数情况下你必须阅读第1到第4999行来找出它。

答案 1 :(得分:2)

由于5000行不是那么大,而且它会进行顺序文件访问,这个简单的想法可行:

BufferedReader in = new BufferedReader(new InputStreamReader(fileName));
for (int i = 0; i < 5000 && in.ready; in.readLine()) { }
if (in.ready()) {
  // you are at line 5000;
} else {
  // the file is smaller than 5000 lines
}

另一个想法是使用bufferedRead.skip(n)方法,但是对于它,每一行应该具有相同的长度。例如,每行包含100个字符,您需要执行以下操作:

int ls = System.getProperty("line.separator").length();
in.skip((100 + ls) * 5000);

答案 2 :(得分:0)

我相信java中的BufferedReader有一个skip方法,它允许你跳过x个字符。要达到特定的路线要困难得多。

修改:Found it