Commons-IO中比较有用的方法

1.文件搜索
FileUtils.listFiles(directory, fileFilter, dirFilter) return Collection
directory-----目录
fileFilter-----过滤器
dirFilter-----可选择的过滤器来决定目录级数,默认为null只搜索一级, DirectoryFileFilter.INSTANCE可以搜索所有子目录的文件

//一级目录下的文件查找
Collection<File> list2=FileUtils.listFiles(new File("D:/研究生"), EmptyFileFilter.NOT_EMPTY, null);
//目录下所有文件的查找
Collection<File> list1=FileUtils.listFiles(new File("D:/研究生"), EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE);
//文件类型选择java或class或空文件
Collection<File> list3=FileUtils.listFiles(new File("D:/研究生"), FileFilterUtils.or(new SuffixFileFilter("java"),new SuffixFileFilter("class"),EmptyFileFilter.EMPTY), DirectoryFileFilter.INSTANCE);
//文件类型选择Java并且不为空
Collection<File> list4=FileUtils.listFiles(new File("D:/研究生"), FileFilterUtils.and(new SuffixFileFilter("java"),EmptyFileFilter.NOT_EMPTY), DirectoryFileFilter.INSTANCE);
//遍历
for(File file:list1) {
	System.out.println(file.getAbsolutePath());
		}

2.读取文件

//从文件中读取字符串
String msg=FileUtils.readFileToString(new File("emp.txt"),"GBK");
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"),"GBK");
for(String string:msgS) {
	System.out.println(string);
	}
//使用迭代器
LineIterator it=FileUtils.lineIterator(new File("emp.txt"),"GBK");
while(it.hasNext()) {
	System.out.println(it.nextLine());
	}

3.写出内容

//数据输出
FileUtils.write(new File("happy.xl"),"学习io文件流好辛苦" ,"GBK");
//字符串输出
FileUtils.writeStringToFile(new File("happy.xl"),"学习io文件流好难" ,"GBK",true);
//字节数组输出
FileUtils.writeByteArrayToFile(new File("happy.xl"),"学习io文件流好难".getBytes("GBK"),true);

4.写出列表

List<String> datas=new ArrayList<String>();
		datas.add("马云");
		datas.add("马化腾");
		datas.add("弼马温");
		FileUtils.writeLines(new File("happy.txt"), datas,"....",true);

5.拷贝

//复制文件
FileUtils.copyFile(new File("p.png"), new File("p-copy.png"));
//复制文件到目录
FileUtils.copyFileToDirectory(new File("p.png"), new File("lib"));
//拷贝目录到新目录的子目录
FileUtils.copyDirectoryToDirectory(new File("lib1"), new File("lib2"));
//拷贝目录里的内容到新目录
FileUtils.copyDirectory(new File("lib1"), new File("lib2"));
//拷贝URL内容
FileUtils.copyURLToFile(new URL("网址"),new File("文件名"));

猜你喜欢

转载自blog.csdn.net/layAlex/article/details/104597227