阶段性复习与应用——复制多级文件夹

(请观看本人博文——《详解 字节流》

首先,本人来展示下源文件夹的内容:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本人 就以这个三级文件夹为例,通过代码来实现对这个三级文件夹的复制操作:

首先,本人来提供下思路:

思路

  1. 封装源文件夹 与 目标文件夹
  2. 遍历源文件夹,当:
    -是文件时,在目标文件夹中完成复制操作
    -是文件夹时,在目标文件夹中创建相同名称的文件夹,并通过递归 2步骤来填充目标文件夹的子文件夹

现在,本人来展示下代码:

import java.io.*;

public class Test {

    public static void main(String[] args) throws IOException {
        //封装源文件夹、封装目标文件夹
        File srcFolder = new File("G:\\testFolder");
        File targetFolder = new File("G:\\copyFolder");
        if (!targetFolder.exists()) {
            targetFolder.mkdirs();
        }
         //遍历源文件夹,把源文件夹中的,每一个文件复制到目标文件夹中
        copyFolder(srcFolder, targetFolder);
    }

    private static void copyFolder(File srcFolder, File targetFolder) throws IOException {
        //遍历源文件夹
        File[] files = srcFolder.listFiles();
        for (File f : files) {
            if(f.isFile()){
                //复制文件到,目标文件夹里面去
                copyFiles(f, targetFolder);
            } else {
            	//递归
                File sonTargetFolder = new File(targetFolder.getAbsolutePath() + "/" + f.getName());
                sonTargetFolder.mkdirs();
                copyFolder(f, sonTargetFolder);
            }
        }
    }

    //复制文件的操作
    private static void copyFiles(File f, File targetFolder) throws IOException {
        FileInputStream in = new FileInputStream(f);
        File file = new File(targetFolder, f.getName());
        FileOutputStream out = new FileOutputStream(file);
        int len=0;
        byte[] bytes=new byte[1024*8];
        while ((len=in.read(bytes))!=-1){
            out.write(bytes,0,len);
        }

		//释放资源
        in.close();
        out.close();
    }

}

那么,现在,让我们看看运行后所生成的文件夹的内容吧:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
那么,可以看到,上面的代码完成了对多级文件夹的复制操作。

本人用了普通字节流来完成了文件的复制操作。
同样地,同学们也可以通过高效字节流来完成同样的操作。

(本人《详解 字节流》博文链接:https:////www.cnblogs.com/codderYouzg/p/12418463.html
(本人“I/O流”总集篇博文链接:https:////www.cnblogs.com/codderYouzg/p/12418404.html

posted @ 2020-03-05 09:32  在下右转,有何贵干  阅读(184)  评论(0编辑  收藏  举报