1、案例介绍
使用字节流复制一个文件夹中的所有内容到指定的文件夹中。
2、案例设计
使用递归算法,使用字节缓冲区来提高程序效率。
3、案例实现:
package com.iotek.file;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFileDemo {
public static void main(String[] args) throws IOException {
CopyUtil.copyDir(new File("f:\\haha"), new File("f:\\ee"));
}
}
class CopyUtil{
public static void copyDir(File src,File dst) throws IOException{
dst.mkdirs();//相比于mkdir()会创建路径中本不存在的文件夹
if(src!=null){
File[] files = src.listFiles();//遍历原文件夹中的文件或目录
if(files!=null){
for(File f:files){
if(f.isFile()){//复制文件
FileInputStream fis = new FileInputStream(f);
FileOutputStream fos = new FileOutputStream(dst.getAbsolutePath() + "\\" + f.getName());
byte[] buffer = new byte[1024*1024];
int len = 0;//保存读到的字节个数
while((len = fis.read(buffer))!=-1){
fos.write(buffer,0,len);
}
fis.close();
fos.close();
}else {
copyDir(f, new File(dst.getAbsolutePath()+"\\"+dst.getName()));
}
}
}
}
}
}