使用高效字节流拷贝文件夹

时间:2021-05-26 21:38:08
public static void copysrcDirTodestDir(File src,File dest) throws IOException{
File[] filelist = src.listFiles();
File newDir = new File(dest,src.getName()); //将目标文件夹作为父文件夹,将源文件夹作为子文件夹,创建File对象
if(!newDir.exists()){
newDir.mkdirs();
}
for (File file : filelist) { //遍历源文件夹下所有的file对象
if(!file.isDirectory()){//在源文件夹下,不是文件夹对象,那就只能是文件对象了
//将源文件夹下的文件作为输入流对象
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
//new File(newDir,file.getName()) 是为了创建出与源文件夹相同的目录结构
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(newDir,file.getName())));
int len=0;
byte[] b = new byte[1024];
while((len = bis.read(b))!=-1){
bos.write(b, 0, len);
}
bis.close();
bos.close();
}else {
//将源文件夹下的子文件夹进行递归操作
copysrcDirTodestDir(file, newDir);
}
}
}