思路:
1.首先判断是文件还是文件夹,文件可以直接复制,文件夹需要解析到最后一层
2.用到的方法:递归,字节输入流,字节输出流
package com.oracle.lx;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
//将D:/20210810下的所有文件和内容,复制到D:/20210810
public class Lx1 {
public static void main(String[] args) throws IOException {
File old=new File("D:/20210810");
File n=new File("D:/20210811");
copyFile(old,n);
System.out.println("执行完成");
}
//复制,如果是文件可以直接复制内容
//如果是文件夹需要先建文件夹,再复制内容
public static void copyFile(File old,File n) throws IOException {
String name=old.getName();
File f=new File(n,name);
if(old.isFile()) {
//读原来的数据到内存中,输入流
FileInputStream in=new FileInputStream(old);
//写数据到新的文件,输出流
FileOutputStream out=new FileOutputStream(f);
int i=0;
while((i=in.read())!=-1) {
out.write(i);
}
out.close();
in.close();
}else {
f.mkdir();
File[] arrf=old.listFiles();
if(arrf.length >0) {
for(File f1:arrf) {
copyFile(f1,f);
}
}
}
}
}