package com.sxt.io3;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.EmptyFileFilter;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.filefilter.SuffixFileFilter;
public class CIOTest01 {
public static void main(String[] args) throws IOException {
}
public void test1() {
//文件大小
long len =FileUtils.sizeOf(new File("D:\\workspace02\\IO流\\src\\com\\sxt\\io3\\ConvertTest.java"));
System.out.println(len);
//目录大小
len=FileUtils.sizeOf(new File("D:\\workspace02\\IO流\\src"));
System.out.println(len);
System.out.println("***********************************************");
Collection<File> files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), EmptyFileFilter.NOT_EMPTY, null);
for(File file:files) {
System.out.println(file.getAbsolutePath());
}
System.out.println("***********************************************");
files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE);
for(File file:files) {
System.out.println(file.getAbsolutePath());
}
System.out.println("***********************************************");
files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), new SuffixFileFilter("java"), DirectoryFileFilter.INSTANCE);
for(File file:files) {
System.out.println(file.getAbsolutePath());
}
System.out.println("***********************************************");
files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"),
FileFilterUtils.or(new SuffixFileFilter("java"),new SuffixFileFilter("class")) , DirectoryFileFilter.INSTANCE);
for(File file:files) {
System.out.println(file.getAbsolutePath());
}
System.out.println("***********************************************");
files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"),
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:\\workspace02\\IO流"),
FileFilterUtils.and(new SuffixFileFilter("java"),EmptyFileFilter.NOT_EMPTY) , DirectoryFileFilter.INSTANCE);
for(File file:files) {
System.out.println(file.getAbsolutePath());
}
}
public void TestWriteRead() throws IOException {
//读取文件
String msg=
FileUtils.readFileToString(new File("C:\\Users\\Administration\\Desktop\\新建文本文档.txt"),"UTF-8");
System.out.println(msg);
byte[] datas=FileUtils.readFileToByteArray(new File("C:\\Users\\Administration\\Desktop\\新建文本文档.txt"));
System.out.println(datas.length);
//逐行读取
List<String>msgs=FileUtils.readLines(new File("C:\\Users\\Administration\\Desktop\\新建文本文档.txt"),"UTF-8");
for(String string:msgs) {
System.out.println(string);
}
//写出文件
FileUtils.write(new File("happy.txt"), "开始学习\r\n","GBK");
FileUtils.writeStringToFile(new File("happy.txt"), "正在学习\r\n","GBK",true);
FileUtils.writeByteArrayToFile(new File("happy.txt"), "结束学习\r\n".getBytes("GBK"),true);
//写出列表
List<String> datas2=new ArrayList<String>();
datas2.add("aaaa");
datas2.add("cccc");
datas2.add("dddd");
FileUtils.writeLines(new File("happy.txt"),datas2,"...",true);
}
public void TestCopy() throws IOException {
//复制文件
//FileUtils.copyFile(new File("D:\\workspace02\\IO流\\src\\IO.PNG"),
new File( "copy-io.PNG"));
//复制文件到目录
//FileUtils.copyFileToDirectory(new File("D:\\workspace02\\IO流\\src\\IO.PNG"),
new File( "D:\\workspace02\\IO流\\lib"));
//复制目录到目录
//FileUtils.copyDirectoryToDirectory(new File("D:/workspace02/IO流/dir"),
new File("D:/workspace02/IO流/lib"));
//复制目录
//FileUtils.copyDirectory(new File("D:/workspace02/IO流/dir"), new File("D:/workspace02/IO流/dir2"));
//拷贝URL内容
// String url="https://timgsa.baidu.com/timg?
image&quality=80&size=b9999_10000&sec=1602059527230&di=b81170ef43a6a6
496ab5815f70caa320&imgtype=0&src=http%3A%2F%2Ft8.baidu.com%2Fit%2Fu%3
D2247852322%2C986532796%26fm%3D79%26app%3D86%26f%3DJPEG%3Fw%3D1280%26h%3D853";
// FileUtils.copyURLToFile(new URL(url), new File("marve.jpg"));
String datas=IOUtils.toString(new URL("http://www.baidu.com"),"UTF-8");
System.out.println(datas);
}
}
文件大小、目录大小 25 27行代码
读取文件,逐行读取,写出文件,写出列表68-94行
复制文件 96-110行代码
列出子孙级
FileUtils.listFiles(directory,fileFilter,dirFilter);
( 第一个参数directory是写目录路径,第二个参数fileFilter是做过滤的,比如你只想要.java 的文件或者.class的文件,第三个参数dirFilter是表示是否显示子孙目录里面的文件)
Collection<File> files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"),
EmptyFileFilter.NOT_EMPTY, null);
for(File file:files) {
System.out.println(file.getAbsolutePath());
上面代码显示该目录下不为空的文件,不查询子目录里面的文件
System.out.println("***********************************************");
files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"),
EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE);
for(File file:files) {
System.out.println(file.getAbsolutePath());
}
上面代码显示该目录下不为空的所有文件,以及子目录里面的所有不为空的文件
files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), new SuffixFileFilter("java"), DirectoryFileFilter.INSTANCE);
for(File file:files) {
System.out.println(file.getAbsolutePath());
}
上面代码表示显示该目录以及子目录中所有以.java 为后缀的文件
files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"),
FileFilterUtils.or(new SuffixFileFilter("java"),new SuffixFileFilter("class")) , DirectoryFileFilter.INSTANCE);
for(File file:files) {
System.out.println(file.getAbsolutePath());
上面代码表示显示该目录以及子目录中所有以.java 或者.class为后缀的文件
files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"),
FileFilterUtils.and(new SuffixFileFilter("java"),EmptyFileFilter.NOT_EMPTY) , DirectoryFileFilter.INSTANCE);
for(File file:files) {
System.out.println(file.getAbsolutePath());
}
上面代码显示该目录以及子目录下所有以.java为后缀且不为空的文件
CommonsIO环境搭建链接:点这里即可http://commons.apache.org/proper/commons-io/
下载解压后将commons-io-2.8.0.jar和commons-io-2.8.0-sources.jar(这里以2.8.0版本为例)复制到eclipse 如图1-1所示
然后右击commons-io-2.8.0.jar找到Build Path 选择Add To Build Path即可配置完成