1. 资源
    ​​​ https://www.apache.org/​​​ 查看 APACHE PROJECT LIST
    可以发现commons中有许多有用的组件(http://commons.apache.org/)
  2. 添加jar包
    把jar包拷入新建的lib目录,然后右击jar包。
  3. java知识点拾遗(commons-io)_jar包

  4. 把jar包加入构建路径。
  5. java知识点拾遗(commons-io)_jar包_02

  6. 生成Referenced Libraries
  7. java知识点拾遗(commons-io)_java_03

  8. 核心类FileUtils
    完整类名 org.apache.commons.io.FileUtils
    例子
// 文件大小
long len = FileUtils.sizeOf(new File("E:/tmp/log/log_debug.log"));
System.out.println(len);
// 目录大小
len = FileUtils.sizeOf(new File("E:/tmp/log"));
System.out.println(len);

Collection<File> files =FileUtils.listFiles(new File("D:\\java300\\IO_study04"),
EmptyFileFilter.NOT_EMPTY, null);
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
System.out.println("---------------------");
files =FileUtils.listFiles(new File("D:\\java300\\IO_study04"),
EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE);
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
System.out.println("---------------------");
files =FileUtils.listFiles(new File("D:\\java300\\IO_study04"),
new SuffixFileFilter("java"), DirectoryFileFilter.INSTANCE);
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
System.out.println("---------------------");
files =FileUtils.listFiles(new File("D:\\java300\\IO_study04"),
FileFilterUtils.or(new SuffixFileFilter("java"),
new SuffixFileFilter("class"),EmptyFileFilter.EMPTY), DirectoryFileFilter.INSTANCE);
for (File file : files) {
System.out.println(file.getAbsolutePath());
}

System.out.println("---------------------");
files =FileUtils.listFiles(new File("D:\\java300\\IO_study04"),
FileFilterUtils.and(new SuffixFileFilter("java"),
EmptyFileFilter.NOT_EMPTY), DirectoryFileFilter.INSTANCE);
for (File file : files) {
System.out.println(file.getAbsolutePath());
}

//读取文件
String msg =FileUtils.readFileToString(new File("emp.txt"),"UTF-8");
System.out.println(msg);
byte[] datas = FileUtils.readFileToByteArray(new File("emp.txt"));
System.out.println(datas.length);

//逐行读取
List<String> msgs= FileUtils.readLines(new File("emp.txt"),"UTF-8");
for (String string : msgs) {
System.out.println(string);
}
LineIterator it =FileUtils.lineIterator(new File("emp.txt"),"UTF-8");
while(it.hasNext()) {
System.out.println(it.nextLine());
}

//写出文件
FileUtils.write(new File("happy.sxt"), "学习是一件伟大的事业\r\n","UTF-8");
FileUtils.writeStringToFile(new File("happy.sxt"), "学习是一件辛苦的事业\r\n","UTF-8",true);
FileUtils.writeByteArrayToFile(new File("happy.sxt"), "学习是一件幸福的事业\r\n".getBytes("UTF-8"),true);

//写出列表
List<String> datas =new ArrayList<String>();
datas.add("马云");
datas.add("马化腾");
datas.add("弼马温");

FileUtils.writeLines(new File("happy.sxt"), datas,"List中每一项的分隔符",true);
  1. 文件操作
//复制文件
//FileUtils.copyFile(new File("p.png"),new File("p-copy.png"));
//复制文件到目录
//FileUtils.copyFileToDirectory(new File("p.png"),new File("lib"));
//复制目录到目录
//FileUtils.copyDirectoryToDirectory(new File("lib"),new File("lib2"));
//复制目录
//FileUtils.copyDirectory(new File("lib"),new File("lib2"));
//拷贝URL内容
//String url = "https://pic2.zhimg.com/v2-7d01cab20858648cbf62333a7988e6d0_qhd.jpg";
//FileUtils.copyURLToFile(new URL(url), new File("marvel.jpg"));
String datas =IOUtils.toString(new URL("http://www.163.com"), "gbk");
System.out.println(datas);