Java BufferedReader 读取文件:实战指南与示例
如何在 Java 中读取文件?
Java 提供多种 I/O 类操作文件。读取文本文件最高效方式是 java.io.BufferedReader,它包装底层 Reader 并缓冲输入,减少昂贵系统调用。
什么是 Java BufferedReader?
BufferedReader 通过缓冲字符从输入流(如文件)读取文本。这允许快速逐行或逐块读取,无需为每字符发起系统调用。
因 FileReader 或 InputStreamReader 的 read() 方法开销大,常用 BufferedReader 包装以提升性能。
典型用法模式:
BufferedReader reader = new BufferedReader(new FileReader("D:\\DukesDiary.txt"));
此处打开文件并缓冲以便高效读取。
显示文件内容,遍历每行直到文件末尾:
String currentLine; while ((currentLine = reader.readLine()) != null) { System.out.println(currentLine); }
循环在 readLine() 返回 null 时终止,表示到达文件末尾。
BufferedReader 示例(JDK 7 前)
下面完整、生产就绪示例演示资源处理最佳实践:
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ReadFileExample { public static void main(String[] args) { BufferedReader reader = null; try { reader = new BufferedReader(new FileReader("D:\\DukesDiary.txt")); String currentLine; while ((currentLine = reader.readLine()) != null) { System.out.println(currentLine); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (reader != null) { reader.close(); } } catch (IOException ex) { ex.printStackTrace(); } } } }
finally 块保证读取器关闭,即使发生异常也释放系统资源。
BufferedReader 示例(JDK 7+ try-with-resources)
Java 7 及以上,try-with-resources 语句简化清理。下例以更简洁形式实现相同逻辑:
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ReadFileExampleJDK7 { private static final String FILENAME = "D:\\DukesDiary.txt"; public static void main(String[] args) { try (BufferedReader br = new BufferedReader(new FileReader(FILENAME))) { String currentLine; while ((currentLine = br.readLine()) != null) { System.out.println(currentLine); } } catch (IOException e) { e.printStackTrace(); } } }
try-with-resources 自动关闭 BufferedReader,代码更简洁、不易出错。
java
- 掌握 Java BufferedReader:高效字符流处理实战指南
- 掌握 Java 文件操作:java.io 包下的创建、读取、写入与删除
- Java Hello World 入门教程:从 JDK 安装到编译运行第一个程序
- Java 封装完全指南:数据隐藏、访问器/修改器、实战案例与核心优势
- Java 变量与数据类型完全指南(含示例)
- Java String length() 方法:获取字符串长度(示例)
- Java String.charAt() 详解:语法、返回类型、异常与实战示例
- 精通 Java String compareTo():语法、用例与实战示例
- Java String.contains() 方法:检查子字符串是否存在(实战示例)
- 精通 Java String.endsWith():检查字符串后缀(示例)
- Java 插入排序算法详解:核心原理、完整代码与步骤演示
- Java 选择排序详解:核心原理、完整代码与步骤演示