文件夹之间复制

package com.lucky.dog.springboot2.x.io;

import java.io.*;

public class CopyDirectoryOrFile {

    public static void main(String[] args) {
        File fileA = new File("F:\\mystudy\\test1\\aa");
        File fileB = new File("F:\\mystudy\\testb\\gg");
        copyDirAndAllFiles(fileA,fileB);
    }

    private static void copyDirAndAllFiles(File fileA, File fileB){
        String fileName = fileA.getName();
        //aa
        System.out.println(fileName);
        File copyFile = new File(fileB,fileName);
        copyFile.mkdirs();
        File[] files = fileA.listFiles();
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;

        try {
            for (File f:files){
                if(f.isDirectory()){
                    copyDirAndAllFiles(f,copyFile);
                }else {
                    bis = new BufferedInputStream(new FileInputStream(f));
                    bos = new BufferedOutputStream(new FileOutputStream(new File(copyFile, f.getName())));
                    byte[] buf = new byte[1024];
                    int len = -1;
                    while ((len = bis.read(buf))!=-1){
                        bos.write(buf,0,len);
                        bos.flush();
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {//关流
            if(bos != null){
                try {
                    bos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(bis != null){
                try {
                    bis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

发布了23 篇原创文章 · 获赞 5 · 访问量 4830

猜你喜欢

转载自blog.csdn.net/weixin_42567141/article/details/104286191