文件是 IO 流乃至多线程的基础,学好文件这一板块可以为我们后续进一步学习 IO 流和多线程打下坚实的基础。在 Java 开发中,文件操作是高频且基础的核心技能 —— 无论是读取配置文件、生成日志、导出报表,还是处理用户上传的文件,都离不开对文件的创建、读取、写入、删除等操作。本文将从「实用场景」出发,手把手教你掌握 Java 文件操作的核心方法,从传统 IO 到 NIO.2,兼顾基础与最佳实践,新手也能快速上手。
一、前置知识:Java 文件操作的核心 API
Java 提供了两套核心文件操作体系,我们先理清它们的定位,避免用错工具:
| 体系 | 核心包 / 类 | 特点 | 适用场景 |
|---|---|---|---|
| 传统 IO | java.io.File、FileReader、FileWriter | 兼容性好,API 偏底层 | 简单文件操作、兼容老项目 |
| NIO.2 | java.nio.file(Paths、Files) | Java 7 新增,API 简洁、功能强、效率高 | 新项目优先使用,支持批量操作、文件属性管理 |
本文以NIO.2为主(推荐),同时补充传统 IO 的核心用法,满足不同场景需求。
二、实战:文件操作核心场景(附完整代码)
所有示例代码均可直接复制到 IDE 中运行,建议先创建测试目录 / 文件,跟着步骤实操。
场景 1:基础操作(创建、删除、判断文件 / 目录)
这是文件操作的「基本功」,比如创建配置文件、判断文件是否存在、删除临时文件等。
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FileBasicOperations {
public static void main(String[] args) {
// ========== 1. 传统 IO(File 类) ==========
// 定义文件路径:Windows 用\\(转义)或/,Linux/Mac 用/
File file = new File("test.txt");
try {
// 创建文件(不存在则创建,存在则返回 false)
if (file.createNewFile()) {
System.out.println("文件创建成功:" + file.getAbsolutePath());
} {
System.out.println();
}
System.out.println( + file.isFile());
System.out.println( + file.isDirectory());
();
(dir.mkdirs()) {
System.out.println( + dir.getAbsolutePath());
}
(file.delete()) {
System.out.println();
}
} (Exception e) {
e.printStackTrace();
}
Paths.get();
{
(!Files.exists(path)) {
Files.createFile(path);
System.out.println( + path.toAbsolutePath());
}
Paths.get();
(!Files.exists(dirPath)) {
Files.createDirectories(dirPath);
System.out.println();
}
(Files.exists(path)) {
Files.delete(path);
System.out.println();
}
} (Exception e) {
e.printStackTrace();
}
}
}

