FieUtils类中常用方法的介绍
打开FileUtils的api文档,我们抽出一些工作中比较常用的方法,进行总结和讲解。总结如下:
cleanDirectory:清空目录,但不删除目录。
contentEquals:比较两个文件的内容是否相同。
copyDirectory:将一个目录内容拷贝到另一个目录。可以通过FileFilter过滤需要拷贝的 文件。
copyFile:将一个文件拷贝到一个新的地址。
copyFileToDirectory:将一个文件拷贝到某个目录下。
copyInputStreamToFile:将一个输入流中的内容拷贝到某个文件。
deleteDirectory:删除目录。
deleteQuietly:删除文件。
listFiles:列出指定目录下的所有文件。
openInputSteam:打开指定文件的输入流。
readFileToString:将文件内容作为字符串返回。
readLines:将文件内容按行返回到一个字符串数组中。
size:返回文件或目录的大小。
write:将字符串内容直接写到文件中。
writeByteArrayToFile:将字节数组内容写到文件中。
writeLines:将容器中的元素的toString方法返回的内容依次写入文件中。
writeStringToFile:将字符串内容写到文件中。
package com.breeziness123.io;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.IOFileFilter;
/**
* Apache-commons-io学习
*
* @author breeziness
*
*/
public class IODemo07 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// copyToFileDemo();
// copyDirectory();
// copyToDirectoryDemo();
String msg = "<?php ?>";
writeDemo(msg);
}
/**
* 将文件读入并显示在控制台
*/
public static void copyToFileDemo() {
try {
String msg = FileUtils.readFileToString(new File("abc.txt"), "UTF-8");
System.out.println(msg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 目录拷贝,并使用FileFilter过滤选择目录和以html结尾的文件
*/
public static void copyDirectory() {
try {
FileUtils.copyDirectory(new File("D:/环境软件/eclipse/projects/IOTest01/aa/"),
new File("D:/环境软件/eclipse/projects/IOTest01/bb/"), new FileFilter() {
@Override
public boolean accept(File pathname) { // 过滤器接口,这个accept()方法形参pathname是指你操作的抽象目录(当前要拷贝的目录)
// TODO Auto-generated method stub
if (pathname.isDirectory() || pathname.getName().endsWith("html")) {
return true;// 为真就复制(过滤选择)
} else {
return false;// 否则不复制(被过滤)
}
}
});
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 复制将一个文件拷贝到某个目录下
*/
public static void copyToDirectoryDemo() {
try {
FileUtils.copyToDirectory(new File("D:/环境软件/eclipse/projects/IOTest01/aa/test1.php"),
new File("D:/环境软件/eclipse/projects/IOTest01/cc/"));
// 列出拷贝后的文件夹内容
Collection<File> filelist = FileUtils.listFiles(new File("D:/环境软件/eclipse/projects/IOTest01/cc/"),
new IOFileFilter() {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return true;// 为true则不过滤
}
@Override
public boolean accept(File file) {
// TODO Auto-generated method stub
return true;// 为true则不过滤
}
}, new IOFileFilter() {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean accept(File file) {
// TODO Auto-generated method stub
return false;
}
});
for (File fl : filelist) {
System.out.println(fl.getName());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 向文件写内容
*
* @param content
*/
public static void writeDemo(String content) {
File file = new File("D:/环境软件/eclipse/projects/IOTest01/aa/test1.php");
try {
FileUtils.write(file, content, "UTF-8");
List<String> msg = FileUtils.readLines(file, "UTF-8");
System.out.println(msg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}