【发布时间】:2015-08-26 19:32:52
【问题描述】:
有没有一种方法可以从文件中读取第 n 行到第 m 行?
换句话说,我有一个包含超过 100k 条目的文件。我想一次加载 10k 行,处理它们,然后加载接下来的 10k 行,以便在有限的内存资源下运行。有没有办法做到这一点?
【问题讨论】:
-
为什么不直接使用
BufferedReader? -
如果您使用的是
readLine,那么您已经在使用BufferedReader,对吧? -
使用LineNumberReader,这是一个支持行号的
BufferedReader。 -
@Jean Logeart 是的,我已经在使用 BufferedReader ,但是要获取第二批,我最终从文件的开头开始并跳过所有已经获取的行。这是一项成本高昂的操作,而且当批量较小且总行数过多时,这会在时间上产生大量开销。有什么办法可以避免这种情况。
-
@Andreas :你能给我一个例子,比如我如何使用 LineNumberReader 和 BufferedReader 从第 n 行获取行到第 m 行?我可以使用 LineNumberReader 去一行。您能否告诉我如何使用 BufferedReader 从该行中获取行而不跳过第 n 行之前的所有行?