文件读写入门
程序运行完数据就消失了。实际应用需要将数据保存到文件。本节介绍 Java 的文件读写操作。
文件操作基础
java
import java.io.File;
File file = new File("test.txt");
file.exists(); // 是否存在
file.isFile(); // 是文件吗
file.isDirectory(); // 是目录吗
file.length(); // 文件大小
file.createNewFile(); // 创建文件
file.delete(); // 删除文件NIO 方式(推荐)
java.nio.file.Files API 更简洁:
java
import java.nio.file.*;
// 读取所有行
Files.readAllLines(path).forEach(System.out::println);
// 读取所有内容
String content = Files.readString(path);
// 写入字符串
Files.writeString(path, "Hello, Java NIO!");
// 写入多行
var lines = Arrays.asList("第一行", "第二行");
Files.write(path, lines);
// 追加模式
Files.writeString(path, "\n追加内容", StandardOpenOption.APPEND);NIO 的优势:API 简洁、自动处理字符编码(UTF-8)、支持流式处理大文件。
传统 IO 方式
BufferedReader 读取
java
try (BufferedReader reader = new BufferedReader(
new FileReader("test.txt"))) {
String line;
int lineNumber = 1;
while ((line = reader.readLine()) != null) {
System.out.printf("%d: %s%n", lineNumber++, line);
}
}BufferedWriter 写入
java
try (BufferedWriter writer = new BufferedWriter(
new FileWriter("output.txt"))) {
writer.write("第一行");
writer.newLine();
writer.write("第二行");
}try-with-resources
始终使用 try-with-resources,确保资源正确关闭:
java
// 推荐写法
try (BufferedReader reader = new BufferedReader(
new FileReader("file.txt"))) {
// 读取操作
} // 自动关闭,无需 finally注意事项
| 事项 | 说明 |
|---|---|
| 字符编码 | 始终指定 UTF-8,避免中文乱码 |
| 资源关闭 | 使用 try-with-resources |
| 大文件 | 使用 BufferedReader 逐行读取,避免内存溢出 |
| 路径分隔符 | Windows 用 \,Linux 用 /,建议用 File.separator |
后续可阅读:Java 程序运行机制、Java 垃圾回收简介
