多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Java 8 – 逐行读取文件 > 原文: [https://howtodoinjava.com/java8/read-file-line-by-line/](https://howtodoinjava.com/java8/read-file-line-by-line/) 在本 [Java 8 教程](https://howtodoinjava.com/java-8-tutorial/)中,学习**使用[流 API](https://howtodoinjava.com/java8/java-streams-by-examples/) 逐行读取**文件。 另外,还要学习遍历行并根据某些条件过滤文件内容。 ## 1\. Java 8 读取文件 – 逐行 在此示例中,我将读取文件内容为`stream`,并一次读取每一行,并检查其中是否包含单词`"password"`。 ```java Path filePath = Paths.get("c:/temp", "data.txt"); //try-with-resources try (Stream<String> lines = Files.lines( filePath )) { lines.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } ``` 上面的程序输出将在控制台中逐行打印文件的内容。 ```java Never store password except in mind. ``` ## 2\. Java 8 读取文件 – 过滤行流 在此示例中,我们将文件内容读取为行流。 然后,我们将过滤掉所有带有单词`"password"`的行。 ```java Path filePath = Paths.get("c:/temp", "data.txt"); try (Stream<String> lines = Files.lines(filePath)) { List<String> filteredLines = lines .filter(s -> s.contains("password")) .collect(Collectors.toList()); filteredLines.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } ``` 程序输出。 ```java password ``` 我们将读取给定文件的内容,并检查是否有任何一行包含单词`"password"`,然后将其打印出来。 ## 3\. Java 7 – 使用`FileReader`读取文件 到 Java 7 为止,我们可以通过[`FileReader`](https://docs.oracle.com/javase/7/docs/api/java/io/FileReader.html)以各种方式读取文件。 ```java private static void readLinesUsingFileReader() throws IOException { File file = new File("c:/temp/data.txt"); FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String line; while((line = br.readLine()) != null) { if(line.contains("password")){ System.out.println(line); } } br.close(); fr.close(); } ``` 这就是 Java 逐行读取文件示例的全部。 请在评论部分提出您的问题。 学习愉快!