文章目录
- 290. Java Stream API - 从文本文件的行创建 Stream
- 🎯 核心概念
- 📌 创建流的两种模式
- 📌 文件流的关闭
- 📌 示例:统计日志文件中的警告数量
- 🧠 讲解:
- 📚 小贴士
- 🎯 小测验(课堂互动)
- 📌 总结
290. Java Stream API - 从文本文件的行创建 Stream
🎯 核心概念
在 Java 中,能够直接打开一个文本文件并对其进行流式处理是一种非常强大的模式。
- 传统方式:
Java I/O API提供了通过BufferedReader.readLine()方法逐行读取文件内容的方式。这需要使用循环逐行读取文件并处理每一行。 Stream API的优势:使用Stream API,你可以更简洁、更具可维护性地处理文件内容,代码可读性更高。
📌 创建流的两种模式
- 基于现有的
BufferedReader:如果你需要重构已经使用BufferedReader的代码,可以使用BufferedReader.lines()方法来获取一个行流。 - 基于新代码:如果你是编写新代码来处理文件内容,建议使用
Files.lines()方法。这个方法接收一个Path参数,并且有一个重载版本,允许你指定字符集(Charset),以支持读取非UTF-8编码的文件。
📌 文件流的关闭
重要概念:处理文件时,文件资源必须在不再需要时关闭,以释放系统资源。幸运的是,Stream接口实现了AutoCloseable接口,这意味着你可以通过try-with-resources语法自动关闭文件流。
这样,Stream本身作为一个资源,可以在你使用完后自动调用close()方法进行关闭。这对于 I/O 操作至关重要,因为没有正确关闭文件流,可能会导致资源泄漏。
📌 示例:统计日志文件中的警告数量
以下是一个通过Stream API统计日志文件中警告数量的示例。由于某些环境限制,你无法直接在浏览