2021-05-02

java复制文件到其他目录下

package Exercise.utils;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class Clone {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        copy(new File("C:\\Users\\admin\\Desktop\\ajax"),new File("E:\\前端资料\\File"),list);
        System.out.println(list);
    }
//
    /**
    *@author shark
    *@date 2021/5/2 17:06
    *desc
    */
    public static void copy(File src, File des, List l){
//        l数组保存需要拷贝文件的文件夹和子文件夹
        if (src.isDirectory()){
            if (l.size() == 0){
                l.add(src.getAbsolutePath().substring(src.getAbsolutePath().lastIndexOf("\\")));
                System.out.println(des.getAbsolutePath()+l.get(0));
            }else{
                String s = (String) l.get(0);
                l.add(src.getAbsolutePath().substring(src.getAbsolutePath().lastIndexOf(s)));
            }
        }
//        利用递归去复制
        File[] files =src.listFiles();
        for (File item :
                files) {
            if (item.isDirectory()) {
                copy(item, des, l);
            }
            else {
                new File(des.getAbsolutePath() + l.get(l.size() - 1)).mkdir();
                FileInputStream fis = null;
                FileOutputStream fos = null;
                try {
                    byte[] bytes = new byte[1024];
                    fis = new FileInputStream(item);
                    fos = new FileOutputStream(des.getAbsolutePath() + item.getAbsolutePath().substring(src.getAbsolutePath().lastIndexOf((String) l.get(0))));
                    int index = 0;
                    while ((index = fis.read(bytes)) != -1) {
                        fos.write(bytes, 0, index);
                        fos.flush();
                    }
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    if (fis != null) {
                        try {
                            fis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    if (fos != null) {
                        try {
                            fis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }


}

需要拷贝的目录
2021-05-02
需要复制到的目录
2021-05-02
启动程序
2021-05-02
2021-05-02

上一篇:selenium -验证码处理


下一篇:Java I/O流 复制文件速度对比