Skip to content

文件读写入门

程序运行完数据就消失了。实际应用需要将数据保存到文件。本节介绍 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 垃圾回收简介

基于 VitePress 构建