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

路易斯·马丁内斯(Lluis Martinez):

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

String readLine(File file, int lineNumber)

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

博zh:
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 代表效率,我的意思是记忆效率

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章