文
章
目
录
章
目
录
学习如何在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()适合于仅适用于小文件。