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

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

谢谢。

Solutions Collecting From Web of "使BufferedReader从.txt文件的中间开始而不是开始?"

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

不过,如果您知道5000行的起始位置,则可以从行5000读取。 不幸的是,大多数情况下,你必须阅读1至4999行才能find答案。

由于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); 

我相信在java中有一个BufferedReader的跳过方法,允许你跳过x个字符。 去特定的路线是非常困难的。

编辑: find它