zoukankan      html  css  js  c++  java
  • 阶段性复习与应用——复制多级文件夹

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

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

    在这里插入图片描述

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

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

    思路

    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

  • 相关阅读:
    Alpine linux如何配置和管理自定义服务
    nginx仅允许域名访问禁止IP访问
    解决influxdb的log日志输出位置
    python配置文件INI/TOML/YAML/ENV的区别
    window获取本机所有IP
    学习本来的样子
    yum/编译安装Zabbix 5.0 LTS
    redis问题优化
    解决nginx同端口强制跳转https配置ssl证书问题
    通过DNS验证自动申请nginx证书
  • 原文地址:https://www.cnblogs.com/codderYouzg/p/12418477.html
Copyright © 2011-2022 走看看