键盘录入一个文件夹路径,作为源文件夹;键盘录入一个文件夹路径,作为目标文件夹写代码将源文件夹拷贝到目标文件夹中
package day19;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) throws Exception {
File f=getDir();
File f1=getDir();
copyDir(f,f1);
}
private static void copyDir(File f, File f1) throws Exception {
File newDir=new File(f1,f.getName());
newDir.mkdir();
File[] files=f.listFiles();
for(File file:files) {
if(file.isDirectory()) {
copyDir(file,newDir);
}else {
BufferedInputStream bis= new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bos= new BufferedOutputStream(new FileOutputStream(new File(newDir,file.getName())));
byte[] buf=new byte[1024];
int len=0;
if((len=bis.read(buf))!=-1) {
bos.write(buf, 0, len);
}
bis.close();
bos.close();
}
}
}
private static File getDir() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一段文件夹路径:");
String str=sc.nextLine();
File f=new File(str);
if(f.isDirectory()) {
return f;
}else {
System.out.println("输入非法,请重新输入");
return getDir();
}
}
}