使用IO流和递归复制多级文件夹,和其中的文件
import java.io.*;
public class duoji {
public static void main(String[] args) throws Exception {
//调用方法传入 要复制的文件夹的路径和目的地址的路径
}
private static void chakan(File f1, File f2) throws Exception {
//在目的目录创建要复制的文件夹的同名文件夹
File f3 = new File(f2, f1.getName());
f3.mkdir();
//获取原文件夹下第File集合
File[] files = f1.listFiles();
//获取集合中每个File对象的name
for (File file : files) {
//判断File对象是不是文件
if (file.isFile()) {
//是文件
//获取当前对象的name
String name = file.getName();
//以创建当前对象的字节缓冲输入流读取数据
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file.getAbsoluteFile()));
//用目标File对象和当前对像的name创建一个新的File对象 并创建字节缓冲输出流写数据
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(f3, name)));
//一次读取一个数组的数据
byte[] by = new byte[1024];
int len;
while ((len = bis.read(by)) != -1) {
bos.write(by, 0, len);
}
//关闭资源
bis.close();
bos.close();
} else {
//判断File对象是文件
// 使用递归方法
//用当前File的绝对路径为参数传入,
chakan(file.getAbsoluteFile(), f3);
}
}
}
}