此程序可以将指定的文件夹及其子目录复制到指定文件下去。 可玩性较强!
import java.io.FileOutputStream; import java.io.FileInputStream; import java.util.Scanner; import java.io.*; public class Copy{ public static void main(String[] args) throws IOException { Scanner sc =new Scanner(System.in); // 指定数据源 System.out.println("请输入数据源"); String str1 = sc.nextLine(); File source = new File(str1); // 指定目的地 System.out.println("请输入目的地"); String dest = sc.nextLine(); copyFile(source,dest); } public static void copyFile(File source,String dest )throws IOException{ //创建目的地文件夹 File destfile = new File(dest); if(!destfile.exists()){ destfile.mkdir(); } //如果source是文件夹,则在目的地址中创建新的文件夹 if(source.isDirectory()){ File file = new File(dest+"\\"+source.getName());//用目的地址加上source的文件夹名称,创建新的文件夹 file.mkdir(); //得到source文件夹的所有文件及目录 File[] files = source.listFiles(); if(files.length==0){ return; }else{ for(int i = 0 ;i<files.length;i++){ copyFile(files[i],file.getPath()); } } } //source是文件,则用字节输入输出流复制文件 else if(source.isFile()){ FileInputStream fis = new FileInputStream(source); //创建新的文件,保存复制内容,文件名称与源文件名称一致 File dfile = new File(dest+"\\"+source.getName()); if(!dfile.exists()){ dfile.createNewFile(); } FileOutputStream fos = new FileOutputStream(dfile); // 读写数据 // 定义数组 byte[] b = new byte[1024]; // 定义长度 int len; // 循环读取 while ((len = fis.read(b))!=-1) { // 写出数据 fos.write(b, 0 , len); } //关闭资源 fos.close(); fis.close(); } } }喜欢的小伙伴,记得关注我呀