文件夹的拷贝

通过使用Java的文件字节流拷贝文件或文件夹,file1->file2

注意:

  • 无论是文件还是文件夹,都可以实现拷贝
  • file2文件夹内部的原内容继续保存且不变
  • 若文件夹file2不存在则会自动创建
  • 该函数通过递归调用实现
  • 由于使用的是文件字节流,所以无论是文本文件还是图片或视频都可以实现拷贝
java 复制代码
public static void copyDirectory(File file1,File file2) {	//拷贝函数:file1->file2
        if (!file1.exists() | file1 == null) {
            return;
        }
        if (!file2.exists()) {
            file2.mkdirs();
        }
        String name = file1.getName();
        File file3 = new File(file2.getAbsoluteFile() +"\\"+ name);

        if (file1.isFile()) {
            try (FileInputStream inputStream = new FileInputStream(file1);
                 FileOutputStream outputStream = new FileOutputStream(file3)) {
                byte[] bytes = new byte[1024];
                int len;
                while ((len = inputStream.read(bytes)) != -1) {
                    outputStream.write(bytes, 0, len);
                }
                return;
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        file3.mkdir();
        File[] files = file1.listFiles();
        for (int i = 0; i < files.length; i++) {	//递归调用
            copyDirectory(files[i], file3);
        }

    }

测试

java 复制代码
public static void main(String[] args) {	//测试
        File file = new File("target");
        File file2 = new File("target2");	//文件夹target2的原内容不变
        copyDirectory(file,file2);
    }
相关推荐
AI科技星4 分钟前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
sunwenjian88618 分钟前
Java进阶——IO 流
java·开发语言·python
波特率11520024 分钟前
const关键字与函数的重载
开发语言·c++·函数重载
sinat_2554878128 分钟前
读者、作家 Java集合学习笔记
java·笔记·学习
FL162386312933 分钟前
[C#][winform]segment-anything分割万物部署onnx模型一键抠图演示
开发语言·c#
皮皮林55138 分钟前
如何画出一张优秀的架构图?(老鸟必备)
java
百锦再39 分钟前
Java 并发编程进阶,从线程池、锁、AQS 到并发容器与性能调优全解析
java·开发语言·jvm·spring·kafka·tomcat·maven
条tiao条1 小时前
KMP 算法详解:告别暴力匹配,让字符串匹配 “永不回头”
开发语言·算法
干啥啥不行,秃头第一名1 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
森林猿1 小时前
java-modbus-读取-modbus4j
java·网络·python