• Java-->用递归方法复制目录、子目录以及文件(文件用到IO流)


    package com.dragon.java.newcopyfile;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class Test {
        public static void main(String args[]) {
            File file = new File("f:/Exercises");
            File file2 = new File("f:/book");
            copyFile(file, file2);
        }
    
            // 递归方法
        public static void copyFile(File file, File file2) {
                    // 当找到目录时,创建目录
            if (file.isDirectory()) {
                file2.mkdir();
                File[] files = file.listFiles();
                for (File file3 : files) {
                               // 递归
                                copyFile(file3, new File(file2, file3.getName()));
                }
                    //当找到文件时
            } else if (file.isFile()) {
                File file3 = new File(file2.getAbsolutePath());
                try {
                    file3.createNewFile();
                    copyDatas(file.getAbsolutePath(), file3.getAbsolutePath());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
            // 复制文件数据的方法
        public static void copyDatas(String filePath, String filePath1) {
            FileInputStream fis = null;
            FileOutputStream fos = null;
            try {
                            // 字节流
                            fis = new FileInputStream(filePath);
                fos = new FileOutputStream(filePath1);
                byte[] buffer = new byte[1024];
                while (true) {
                    int temp = fis.read(buffer, 0, buffer.length);
                    if (temp == -1) {
                        break;
                    } else {
                        fos.write(buffer, 0, temp);
                    }
                }
            } catch (IOException e) {
                System.out.println(e);
            } finally {
                try {
                    fis.close();
                    fos.close();
                } catch (IOException e) {
                    System.out.println(e);
                }
            }
        }
    }    
  • 相关阅读:
    C#中常见的系统内置委托用法详解(抄录)
    ClassifyHandler 分类处理结构
    AutoFac Ioc依赖注入容器
    深入理解DIP、IoC、DI以及IoC容器
    ASP.NET MVC的请求处理流程
    电商秒杀功能实现
    MVC之Global.asax解析
    MVC基类控制器的会话丢失重新登录权限过滤
    MVC的Action上下文:ActionExecutingContext
    ASP.NET与MVC架构区别总结
  • 原文地址:https://www.cnblogs.com/xmcx1995/p/5768496.html
Copyright © 2020-2023  润新知