版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cheidou123/article/details/83214603
一、概述
引入依赖
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
二、常用方法
1.统计文件以及目录大小
public class No100_Commonsio {
public static void main(String[] args) {
// 统计文件的大小
long fileSize = FileUtils.sizeOf(new File("timg.jpeg"));
System.out.println(fileSize);
// 统计目录的大小
long directroySize = FileUtils.sizeOf(new File("directory"));
System.out.println(directroySize);
}
}
2.列出子孙集
列出子孙集默认是列出子集,可以做过滤,比如以什么结尾,非空等等。
// 递归子集
Collection<File> son = FileUtils.listFiles(new File("directory"), EmptyFileFilter.NOT_EMPTY, null);
for(File file : son){
System.out.println(file.getAbsolutePath());
}
// 递归子孙集
Collection<File> all = FileUtils.listFiles(new File("directory"), EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE);
for(File file : all){
System.out.println(file.getAbsolutePath());
}
3.读取写出文件
3.1 读取文件
String msg = FileUtils.readFileToString(new File("out.txt"),"UTF-8");
System.out.println(msg);
byte[] msgByte = FileUtils.readFileToByteArray(new File("out.txt"));
System.out.println(msgByte.length);
//逐行读取
List<String> msgs = FileUtils.readLines(new File("out.txt"),"UTF-8");
for(String line : msgs){
System.out.println(line);
}
3.2 写出文件
//写出文件
FileUtils.write(new File("write.txt"),"蔡","UTF-8");
//最后一个参数是追加
FileUtils.writeStringToFile(new File("write.txt"),"小","UTF-8",true);
FileUtils.writeByteArrayToFile(new File("write.txt"),"彬".getBytes("UTF-8"),true);
//写出列表
List<String> msgList = new ArrayList<String>();
msgList.add("第");
msgList.add("一");
FileUtils.writeLines(new File("write.txt"),msgList,"/",true);
4.文件转移
其中重点掌握拷贝url到文件
public class No101_CommonsIO_02 {
public static void main(String[] args) throws Exception {
// 拷贝文件到文件
FileUtils.copyFile(new File("timg.jpeg"), new File("timg-copy.jpeg"));
// 拷贝文件到目录
FileUtils.copyFileToDirectory(new File("timg.jpeg"), new File("dest"));
// 复制目录及子孙所有文件到目录
FileUtils.copyDirectoryToDirectory(new File("directory"), new File("dest"));
//复制目录下的文件到另外一个目录
FileUtils.copyDirectory(new File("directory"), new File("dest"));
//拷贝url到文件
FileUtils.copyURLToFile(new URL("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1540034625381&di=419a1f10036b4421ae95a4ac5dbd9b07&imgtype=0&src=http%3A%2F%2Fpic31.nipic.com%2F20130728%2F7447430_145214729000_2.jpg"), new File("url.jpg"));
}
}