public class FileUtilsDemo {
public static void main(String[] args) throws Exception{
FileUtils.copyDirectory(new File("D:/a"),new File("D:/b"), new FileFilter() {
@Override
//设置在文件拷贝时的过滤条件
public boolean accept(File pathname) {
if (pathname.isDirectory() || pathname.getName().endsWith("html")){
return true;
}
return false;
}
});
}
}
apache.commons.io.FileUtils
工具类 都是静态方法可以直接调用不过需要下载jar 导入
常用方法:
cleanDirectory: 清空目录,但不删除目录。
contentEquals: 比较两个文件的内容是否相同
copyDirectory: 将一个目录内容拷贝到另一个目录。可以通过 FileFilter 过滤需要拷贝的
文件。
copyFile: 将一个文件拷贝到一个新的地址。
copyFileToDirectory: 将一个文件拷贝到某个目录下。
copylnputStreamToFile: 将一个输入流中的内容拷贝到某个文件
deleteDirectory: 删除目录。
deleteQuietly: 删除文件。
listFiles:列出指定目录下的所有文件
openInputSteam:打开指定文件的输入流
readFileToString: 将文件内容作为字符串返回
readLines: 将文件内容按行返回到一个字符串数组中
size:返回文件或目录的大小
write: 将字符串内容直接写到文件中
writeByteArrayToFile:将字节数组内容写到文件中
writeLines: 将容器中的元素的 tostring 方法返回的内容依次写入文件中
writeStringToFile: 将字符串内容写到文件中
IOUtiles使用
public class IOUtileDemo {
public static void main(String[] args) throws Exception{
String content=IOUtils.toString(new FileInputStream("D:/output/txt"),"utf-8");
System.out.println(content);
}
}
打开 loUtils 的 api 文档,我们发现它的方法大部分都是重载的。所以,我们理解它的方法并不是难事。因此,对于方法的用法总结如下:
buffer 方法: 将传入的流进行包装,变成缓冲流。并可以通过参数指定缓冲大小。
closeQueitly 方法: 关闭流
contentEquals 方法:比较两个流中的内容是否一致。
copy 方法:将输入流中的内容拷贝到输出流中,并可以指定字符编码
copyLarge 方法: 将输入流中的内容拷贝到输出流中,适合大于 2G 内容的拷贝
linelterator 方法: 返回可以迭代每一行内容的迭代器
read 方法: 将输入流中的部分内容读入到字节数组中
readFully 方法: 将输入流中的所有内容读入到字节数组中
readLine 方法: 读入输入流内容中的一行
toBufferedInputStream,toBufferedReader: 将输入转为带缓存的输入流
toByteArray,tocharArray: 将输入流的内容转为字节数组、字符数组
tostring:将输入流或数组中的内容转化为字符串
write 方法: 向流里面写入内容
writeLine 方法: 向流里面写入一行内容