apache的文件工具类FileUtils

发布时间 2023-11-28 08:44:12作者: 残城碎梦

org.apache.commons.io.FileUtils是apache提供用来操作文件的工具类,可以简化文件操作。

<!-- FileUtils -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>

写文件

文件的写入,FileUtils其实一行代码就能实现。list.add的数据默认会换行。

String pathName = "F:/1.txt";
List<String> list = new ArrayList<>();
list.add("我:老板,给我涨涨工资吧!");
list.add("老板:好的~");
FileUtils.writeLines(new File(pathName), list);

读文件

List<String> list = FileUtils.readLines(new File(pathName));

将网页内容写到文件中

网址必须带上传输协议,即以http/https开头,否则会报java.net.MalformedURLException: no protocol(URL格式不正确:无协议)。

URL url = new URL("https://www.baidu.com");
FileUtils.copyURLToFile(url, new File("F:/1.txt"));

根据一个Url来创建一个文件

//使用绝对路径, 必须添加file://
File file1 = FileUtils.toFile(new URL("file://D:/ideawork/demo/1.txt"));
System.out.println(file1.getAbsolutePath());
//使用相对路径
File file2 = FileUtils.toFile(App.class.getResource("/test.txt"));
System.out.println(file2.getAbsolutePath());

获取文件大小

long size = FileUtils.sizeOf(new File("D:/ideawork/demo/1.txt"));

文件复制

File srcFile = new File("D:/ideawork/demo/1.txt");
File desFile = new File(App.class.getResource("/test.txt").getPath());
FileUtils.copyFile(srcFile, desFile);

移动文件到另外一个位置,删除老文件

FileUtils.moveFile(new File("D:/ideawork/demo/1.txt"), new File("D:/ideawork/demo/2.txt"));

拷贝目录

FileUtils.copyDirectory(new File("D:/ideawork/demo/test"), new File("D:/ideawork/demo/test2"), new FileFilter() {
    @Override
    public boolean accept(File file) {
        //return file.isDirectory() ? true : false; //只拷贝目录
        return true; //拷贝所有,包括目录和文件
    }
});