掌握 Java FileReader:构造器、核心方法与实战示例全解析
Java FileReader 类
FileReader 位于 java.io,从文件读取字符数据。继承 InputStreamReader,支持不同字符编码。
创建 FileReader
导入类:
import java.io.FileReader;
1. 按文件名
FileReader input = new FileReader("path/to/file.txt");
打开指定文件的读取器。
2. 按 File 对象
File fileObj = new File("path/to/file.txt");
FileReader input = new FileReader(fileObj);
3. 指定字符集(Java 11+)
FileReader input = new FileReader("path/to/file.txt", StandardCharsets.UTF_8);
用 Charset 按期望编码读取文件。
FileReader 关键方法
read() 方法
read()– 读单字符read(char[] array)– 填充字符数组read(char[] array, int offset, int length)– 从offset读length字符到数组
示例:读取 input.txt(含 “This is a line of text inside the file.”)
import java.io.FileReader;
class Main {
public static void main(String[] args) {
char[] buffer = new char[100];
try (FileReader reader = new FileReader("input.txt")) {
int readCount = reader.read(buffer);
System.out.println("Data in the file:");
System.out.println(new String(buffer, 0, readCount));
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出
Data in the file: This is a line of text inside the file.
注意:将 input.txt 放在当前工作目录。
getEncoding() 方法
获取读取器使用的字符集:
import java.io.FileReader;
import java.nio.charset.StandardCharsets;
class Main {
public static void main(String[] args) {
try {
FileReader defaultReader = new FileReader("input.txt");
FileReader utf8Reader = new FileReader("input.txt", StandardCharsets.UTF_8);
System.out.println("Default encoding: " + defaultReader.getEncoding());
System.out.println("UTF-8 encoding: " + utf8Reader.getEncoding());
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出
Default encoding: Cp1252 UTF-8 encoding: UTF-8
指定字符集时 getEncoding() 返回该字符集;否则反映平台默认。
close() 方法
用后始终关闭 reader。上述 try-with-resources 自动处理。
FileReader 其他方法
| 方法 | 描述 |
|---|---|
ready() | 指示流是否准备好可读 |
mark() | 标记流当前位置 |
reset() | 重置到最近标记位置 |
详见官方 Java FileReader 文档。
java
- 深入理解 Java final 关键字:变量、方法与类的不可变性
- Java instanceof 运算符完全指南:用法、继承与接口检查
- 精通 Java 继承:核心概念、类型与实战示例
- 深入理解 Java 静态嵌套类:用法、差异与实战示例
- 精通 Java 匿名内部类:定义、语法与实战示例
- Java 单例模式详解:安全实现与使用指南
- 精通 Java 反射:运行时检查类、方法与字段
- 精通 Java ArrayList:操作、方法与最佳实践
- 掌握 Java ObjectOutputStream:序列化、核心方法与实战示例
- 掌握 Java BufferedReader:高效字符流处理实战指南
- 掌握 Java 泛型:构建可复用、类型安全的代码
- 掌握 Java 文件操作:java.io 包下的创建、读取、写入与删除