文件操作是每个项目中必备的一个模块,Hutool中的FileUtil类库封装了大多数文件操作,非常方便,今天给大家分享一下具体的使用示例。
1、pom.xml 导入依赖包
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.0</version>
</dependency>
- 1.
- 2.
- 3.
- 4.
- 5.
2、新增测试类 src/main/java/FileTest.java
这里主要分享常见的集中文件操作,比如查看文件目录是否存在、获取文件列表、创建目录等操作,其余的还有复制文件、移动文件、修改文件名等操作,大家可以自行尝试。
import cn.hutool.core.io.FileUtil;
import java.io.File;
import java.util.List;
/**
* @author haogm
* @ClassName FileTest
* @description: TODO
* @datetime 2023年 01月 28日 13:39
* @version: 1.0
*/
public class FileTest {
public static void main(String[] args) {
createFileOrDir();
getFileList();
exist();
}
/**
* 判断文件是否存在,参数可以是目录或者是文件路径 或者 文件
*/
private static void exist() {
// 文件路径
boolean exist1 = FileUtil.exist("D:\\Test.xlsx");
// 直接传递文件 作为参数
boolean exist2 = FileUtil.exist(new File("D:\\Test.xlsx"));
// 传递目录字符串作为参数
boolean exist3 = FileUtil.exist("D:\\Test2");
String msg = "文件路径参数:" + exist1 + ",文件参数:" + exist2 + ",目录参数:" + exist3;
System.out.println(msg);
}
/**
* 获取目录中的文件及目录列表
*/
private static void getFileList() {
File[] files = FileUtil.ls("D:\\Test");
for (File file : files) {
System.out.println(file.getAbsoluteFile());
}
// 判断当前路径是否是文件
boolean isFile1 = FileUtil.isFile("D:\\Test");
boolean isFile2 = FileUtil.isFile("D:\\Test.xlsx");
// 判断当前路径是否是目录
boolean isDir1 = FileUtil.isDirectory("D:\\Test");
boolean isDir2 = FileUtil.isDirectory("D:\\Test.xlsx");
// 判断是否空文件 输出结果为 false
boolean empty = FileUtil.isEmpty(new File("D:\\Test.xlsx"));
// 新建一个空文本 输出结果为 true
boolean empty2 = FileUtil.isEmpty(new File(" D:\\Test\\111\\123.txt"));
// 判断目录是否为空 输出结果为 false
boolean dirEmpty = FileUtil.isDirEmpty(new File("D:\\Test"));
// 创建一个空的目录 输出结果为 true
boolean dirEmpty2 = FileUtil.isDirEmpty(new File("D:\\Test\\222"));
System.out.println(empty + ":" + empty2 + ":" + dirEmpty + ":" + dirEmpty2);
// 获取指定目录的文件名称列表
List<String> fileNames = FileUtil.listFileNames("D:\\Test");
System.out.println(fileNames.toString());
}
/**
* 创建文件&目录
*/
private static void createFileOrDir() {
// 创建文件 如果存在则跳过
FileUtil.touch(new File("D:\\touch\\1.doc"));
// 创建目录 如果存在跳过
FileUtil.mkdir("D:\\touch01");
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.