是对所有IO操作的封装,先到apache官网下载jar包http://commons.apache.org/proper/commons-io/download_io.cgi,下载最新版
统计文件和文件夹的大小
package study_commons;
import java.io.File;
import org.apache.commons.io.FileUtils;
public class test01 {
public static void main(String[] args) {
long size = FileUtils.sizeOf(new File("C:\\Users\\liweimo\\eclipse-workspace\\Study_01\\src\\study_commons\\test01.java"));
System.out.println("文件大小" + size);
size = FileUtils.sizeOf(new File("C:\\Users\\liweimo\\eclipse-workspace\\Study_01"));
System.out.println("文件夹大小" + size);
}
}
查找文件
package study_commons;
import java.io.File;
import java.util.Collection;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.EmptyFileFilter;
import org.apache.commons.io.filefilter.SuffixFileFilter;
public class test02 {
public static void main(String[] args) {
Collection<File> files = FileUtils.listFiles(new File("C:\\Users\\liweimo\\eclipse-workspace\\Study_01"),
EmptyFileFilter.NOT_EMPTY,//文件内容不为空
null);
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
System.out.println("------------------------------");
Collection<File> files2 = FileUtils.listFiles(new File("C:\\Users\\liweimo\\eclipse-workspace"),
new SuffixFileFilter("java"),//查找所有文件后缀名为java的文件
DirectoryFileFilter.INSTANCE);//DirectoryFileFilter.INSTANCE子孙文件
for (File file : files2) {
System.out.println(file.getAbsolutePath());
}
}
}
读取文件
package study_commons;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator;
public class Test3 {
public static void main(String[] args) throws IOException {
//整个读取
String msg = FileUtils.readFileToString(new File("a.txt"));
System.out.println(msg);
byte[] datas = FileUtils.readFileToByteArray(new File("a.txt"));
System.out.println(datas.length);
//逐行读取
List<String> list = FileUtils.readLines(new File("a.txt"));
for (String string : list) {
System.out.println(string);
}
//迭代器读取文件
LineIterator iter = FileUtils.lineIterator(new File("a.txt"));
while (iter.hasNext()) {
System.out.println(iter.nextLine());
}
}
}
写入文件
package study_commons;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.FileUtils;
public class Test4 {
public static void main(String[] args) throws IOException {
FileUtils.write(new File("b.txt"), "测试文件写入\r\n");
FileUtils.writeStringToFile(new File("b.txt"), "测试文件写入1\r\n",true);//true追加写入
FileUtils.writeByteArrayToFile(new File("b.txt"),"12334字节数组".getBytes(),true);//字节数组写入
//数组数据写入
List<String> datas = new ArrayList<String>();
datas.add("1");
datas.add("3");
datas.add("13131");
FileUtils.writeLines(new File("c.txt"), datas);
}
}
拷贝文件
package study_commons;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
public class Test5 {
public static void main(String[] args) throws IOException {
//拷贝文件
FileUtils.copyFile(new File("a.txt"), new File("d.txt"));
//拷贝文件到指定的文件夹
FileUtils.copyFileToDirectory(new File("a.txt"), new File("src"));
//拷贝文件夹到当前目录
FileUtils.copyDirectory(new File("lib"), new File("lib2"));
//拷贝文件夹指定文件夹下
FileUtils.copyDirectoryToDirectory(new File("lib"), new File("lib2"));
//下载图片
String url = "https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=suchmos&step_word=&hs=0&pn=0&spn=0&di=7370&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=1737284227%2C1285273756&os=1391117711%2C3928666892&simid=0%2C0&adpicid=0&lpn=0&ln=74&fr=&fmq=1560328960174_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined©right=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fwx3.sinaimg.cn%2Flarge%2F006H8RYSly1fxvoqmdptaj30z60lj4qp.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fojtk5_z%26e3Bv54AzdH3Fppw6ptvsjAzdH3FrAzdH3Ffi5o%3Ft1%3Ddnal9a9da0nc8cblmm8b9l&gsm=0&rpstart=0&rpnum=0&islist=&querylist=&force=undefined";
FileUtils.copyURLToFile(new URL(url), new File("such.jpg"));
//下载网页源码
String data = IOUtils.toString(new URL("http://www.baidu.com"),"UTF-8");
System.out.println(data);
}
}