一尘不染

从Java中的文本文件读取特定行

java

有什么方法可以从文本文件中读取特定行?在API或Apache Commons中。就像是 :

String readLine(File file, int lineNumber)

我同意实现起来很简单,但是特别是当文件很大时,效率不是很高。


阅读 242

收藏
2020-09-08

共1个答案

一尘不染

String line = FileUtils.readLines(file).get(lineNumber);

可以,但是仍然存在效率问题。

或者,您可以使用:

 LineIterator it = IOUtils.lineIterator(
       new BufferedReader(new FileReader("file.txt")));
 for (int lineNumber = 0; it.hasNext(); lineNumber++) {
    String line = (String) it.next();
    if (lineNumber == expectedLineNumber) {
        return line;
    }
 }

由于有缓冲,这将稍微更有效。

看一下Scanner.skip(..)并尝试跳过整行(使用正则表达式)。我无法确定它是否会更有效-
对其进行基准测试。

PS 代表 效率, 我的意思是 记忆效率

2020-09-08