学习如何在Java中从文本文件中读取特定行。我们将学习如何为小文件和大文件编写解决方案。

1.读取小文件中的行

如果文件很小,我们可以使用返回字符串列表的方法将整个文件内容读取到内存中。

一旦我们有了字符串列表,我们就可以使用list.get()方法中的合适索引来读取任何行。

Path filePath = Paths.get("C:/temp/file.txt"); List<String> lines = null; try { lines = Collections.unmodifiableList(Files.readAllLines(filePath)); } catch (IOException e) { e.printStackTrace(); } //Read second line String secondLine = lines.get(1); 

请记住,list和数组的索引从零开始。

2.读取大文件中的特定行

使用lines()方法,可以以流的形式懒惰地读取和处理大文件的内容。由于流是懒惰处理的,因此我们可以使用skip()方法跳过某些行数,然后从所需位置开始读取。

Path filePath = Paths.get("C:/temp/file.txt") //try-with-resources try (Stream<String> streamOfLines = Files.lines( filePath )) { String secondLine = streamOfLines.skip(1) .findFirst() .get(); } catch (IOException e) { e.printStackTrace(); } 

3.结论

在这篇简短教程中,我们学习了如何在Java中读取特定行数。我们看到了两种解决方案,其中Files.lines()可以用于小文件和大文件。

第一种解决方案,Files.readAllLines()适合于仅适用于小文件。