import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* @author 作者
* @version 创建时间:2019年8月2日 上午11:49:07
* 类说明
* 实现文件夹的拷贝-----多层子目录-多种类型的文件
*/
public class CopyTest {
public static void main(String[] args) throws IOException {
copy(new File("a"),new File("c"));
}
private static void copy(File file, File file2) throws IOException {
file2 = new File(file2, file.getName());
file2.mkdir();
File[] fs = file.listFiles();
if(fs==null) return;
for(File f:fs){
if (f.isDirectory()) {
copy(f, file2);
}else if(f.isFile()) copyFile(f,file2);
}
}
private static void copyFile(File file, File file2) throws IOException {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(file2,file.getName())));
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
byte[] bs = new byte[1024];
int len;
while((len=bis.read(bs))!=-1){
bos.write(bs,0,len);
}
bis.close();
bos.close();
}
}