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移动文件
📝 发现内容有误?点击此处直接编辑