掌握 Java BufferedReader:高效字符流处理实战指南
Java BufferedReader 类
BufferedReader 位于 java.io,包装另一 Reader 提供高效字符输入。通过将数据分块读入内部缓冲区,最小化昂贵磁盘 I/O 操作。
BufferedReader 工作原理
内部维护 8,192 字符 默认缓冲区。读操作时从源文件获取一块字符存入缓冲区。后续读从缓冲区逐字符拉取,大幅减少磁盘访问次数,加速 I/O。
创建 BufferedReader
导入 java.io 中的类并包装任意 Reader 实现(如 FileReader):
import java.io.FileReader;
import java.io.BufferedReader;
FileReader file = new FileReader("example.txt");
BufferedReader reader = new BufferedReader(file);
可指定自定义缓冲区大小:
BufferedReader reader = new BufferedReader(file, 16384); // 16KB 缓冲区
BufferedReader 关键方法
read()
int read()– 从缓冲区读单字符int read(char[] cbuf)– 读字符到提供数组int read(char[] cbuf, int off, int len)– 从偏移 off 读最多 len 字符到数组
示例:将 input.txt 全部内容读入字符数组:
import java.io.FileReader;
import java.io.BufferedReader;
class Main {
public static void main(String[] args) {
char[] buffer = new char[100];
try (FileReader file = new FileReader("input.txt");
BufferedReader reader = new BufferedReader(file)) {
reader.read(buffer);
System.out.println("Data in the file:\n" + new String(buffer));
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出
Data in the file: This is a line of text inside the file.
skip()
skip(long n) 丢弃流中接下来 n 字符:
reader.skip(5); // 跳过 "This "
跳过后读取剩余内容得:
Data after skipping 5 characters: is a line of text inside the file.
close()
始终关闭 reader 释放资源:
reader.close();
其他实用方法
| 方法 | 描述 |
|---|---|
ready() | 检查流是否准备好可读无阻塞 |
mark(int readAheadLimit) | 标记流当前位置 |
reset() | 重置到最近标记位置 |
完整参考访问 官方 Java 文档。
java
- 深入理解 Java final 关键字:变量、方法与类的不可变性
- Java instanceof 运算符完全指南:用法、继承与接口检查
- 精通 Java 继承:核心概念、类型与实战示例
- 深入理解 Java 静态嵌套类:用法、差异与实战示例
- 精通 Java 匿名内部类:定义、语法与实战示例
- Java 单例模式详解:安全实现与使用指南
- 精通 Java 反射:运行时检查类、方法与字段
- 精通 Java ArrayList:操作、方法与最佳实践
- 掌握 Java ObjectOutputStream:序列化、核心方法与实战示例
- 掌握 Java 泛型:构建可复用、类型安全的代码
- 掌握 Java 文件操作:java.io 包下的创建、读取、写入与删除
- Java BufferedReader 读取文件:实战指南与示例