全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-08 7 分钟 ✍️ juanwangdev

FileUtils

FileUtils是Apache Commons IO提供的文件操作工具类,简化文件读写。

概述

所在包

org.apache.commons.io.FileUtils

依赖引入

XML
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>

核心特点

  • 静态方法,无需创建对象
  • 操作File对象(文件/目录)
  • 一行代码完成复杂文件操作

读取文件

readFileToString读取文件

Java
File file = new File("test.txt");

// 读取为字符串(默认编码)
String content = FileUtils.readFileToString(file);

// 指定编码
String content = FileUtils.readFileToString(file, "UTF-8");

readLines按行读取

Java
File file = new File("test.txt");

// 读取为List<String>(每行一个元素)
List<String> lines = FileUtils.readLines(file, "UTF-8");

for (String line : lines) {
    System.out.println(line);
}

readFileToByteArray读取字节

Java
File file = new File("image.jpg");

// 读取为字节数组
byte[] data = FileUtils.readFileToByteArray(file);

// 适合二进制文件(图片、视频等)

写入文件

write写入字符串

Java
File file = new File("test.txt");

// 写入字符串(覆盖)
FileUtils.writeStringToFile(file, "Hello World", "UTF-8");

// 追加写入
FileUtils.writeStringToFile(file, "Append", "UTF-8", true);

writeLines写入多行

Java
File file = new File("test.txt");
List<String> lines = Arrays.asList("line1", "line2", "line3");

// 写入多行(每行一个元素)
FileUtils.writeLines(file, "UTF-8", lines);

// 追加写入
FileUtils.writeLines(file, "UTF-8", lines, true);

writeByteArrayToFile写入字节

Java
File file = new File("data.bin");
byte[] data = {0x01, 0x02, 0x03};

FileUtils.writeByteArrayToFile(file, data);

复制文件

copyFile复制文件

Java
File src = new File("source.txt");
File dest = new File("target.txt");

// 复制文件
FileUtils.copyFile(src, dest);

copyFileToDirectory复制到目录

Java
File src = new File("source.txt");
File dir = new File("output");

// 复制文件到目录(保留原文件名)
FileUtils.copyFileToDirectory(src, dir);
// 创建 output/source.txt

copyDirectory复制目录

Java
File srcDir = new File("srcFolder");
File destDir = new File("destFolder");

// 复制整个目录(包含子目录和文件)
FileUtils.copyDirectory(srcDir, destDir);

删除文件/目录

deleteQuietly安静删除

Java
File file = new File("test.txt");
FileUtils.deleteQuietly(file);  // 删除文件,失败不抛异常

File dir = new File("folder");
FileUtils.deleteQuietly(dir);   // 删除目录(包含内容)

forceDelete强制删除

Java
File dir = new File("folder");
FileUtils.forceDelete(dir);  // 删除目录,失败抛IOException

forceDelete删除非空目录,deleteQuietly失败时静默返回。

cleanDirectory清空目录

Java
File dir = new File("folder");
FileUtils.cleanDirectory(dir);  // 清空目录内容,保留目录本身

创建目录

forceMkdir强制创建目录

Java
File dir = new File("output/sub/dir");
FileUtils.forceMkdir(dir);  // 创建多级目录,已存在不报错

文件大小

sizeOf获取文件大小

Java
File file = new File("test.txt");
long size = FileUtils.sizeOf(file);  // 返回字节数

File dir = new File("folder");
long size = FileUtils.sizeOf(dir);   // 目录总大小(所有文件)

sizeOfAsHumanReadable友好显示

Java
File file = new File("large.mp4");
String size = FileUtils.byteCountToDisplaySize(FileUtils.sizeOf(file));
// 如 "1.5 GB"

移动文件

moveFile移动文件

Java
File src = new File("source.txt");
File dest = new File("target.txt");
FileUtils.moveFile(src, dest);  // 移动/重命名

moveFileToDirectory移动到目录

Java
File src = new File("source.txt");
File dir = new File("output");
FileUtils.moveFileToDirectory(src, dir, true);  // 创建目录(不存在)

检查文件

isFileNewer/isFileOlder比较修改时间

Java
File file1 = new File("file1.txt");
File file2 = new File("file2.txt");

boolean newer = FileUtils.isFileNewer(file1, file2);  // file1比file2新
boolean older = FileUtils.isFileOlder(file1, file2);  // file1比file2旧

要点总结

  • FileUtils是Apache Commons IO的文件操作工具类
  • readFileToString/readLines读取文件
  • writeStringToFile/writeLines写入文件
  • copyFile/copyDirectory复制文件和目录
  • deleteQuietly/forceDelete删除文件/目录
  • cleanDirectory清空目录保留本身
  • forceMkdir创建多级目录
  • sizeOf获取文件/目录大小
  • moveFile/moveFileToDirectory移动文件

📝 发现内容有误?点击此处直接编辑

← 上一篇 ExceptionUtils
下一篇 → IOUtils
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库