文件夹的拷贝

通过使用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);
    }
相关推荐
她的男孩1 小时前
Spring Boot 接 Flowable 工作流:用 3 个注解搭一个请假审批流程
java·后端·架构
荣码3 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
plainGeekDev4 小时前
Gson → kotlinx.serialization
android·java·kotlin
小bo波13 小时前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing
咖啡八杯14 小时前
GoF设计模式——备忘录模式
java·后端·spring·设计模式
SamDeepThinking1 天前
裁掉那个差程序员后,给你看团队里高手的代码:这个习惯,希望你有
java·后端·程序员
朕瞧着你甚好1 天前
技术雷达 & Java 集成评估报告 — Apache Tika 3.3.1
java·ai编程
MacroZheng1 天前
短短几天,暴涨2.8万Star!又一款编程神器开源!
java·人工智能·后端