有什么方法可以从文本文件中读取特定行?在API或Apache Commons中。就像是 :
String readLine(File file, int lineNumber)
我同意实现起来很简单,但是特别是当文件很大时,效率不是很高。
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(..)并尝试跳过整行(使用正则表达式)。我无法确定它是否会更有效- 对其进行基准测试。
Scanner.skip(..)
PS 代表 效率, 我的意思是 记忆效率