IO流复制文件夹(包含子文件夹中文件)的问题

来源:4-1 Java 中的集合框架概述

qq_Kindergarten_0

2018-06-30 11:35

//在D盘下创建一个目录d1,在目录d1下创建创建若干个文本文件,并在每一个文本文件中添加若干内容。利用字节流
//将该目录下的所有文件复制到D盘下的d2目录下。
public class Test10 {

    public static void main(String[] args) throws Exception {
        //创建源文件夹对象
        File dir = new File("D:\\图片\\新建文件夹");
        ArrayList<File> list = new ArrayList<>();
        ArrayList<File> filesList = BLfile(dir, list);
        //创建目标文件夹对象
        File dir2 = new File("D:\\图片\\新建文件夹2");
        copyFile(list, dir2);
    }

    private static void copyFile(ArrayList<File> list, File dir2) throws Exception {
        //遍历集合拿到每个源文件对象
        for (File f : list) {
            //创建读取对象
            FileInputStream fis = new FileInputStream(f);
            //创建文件输入对象
            FileOutputStream fos = new FileOutputStream(new File(dir2,f.getName()));
            int len = -1;
            byte[] b = new byte[1024];
            while ((len = fis.read(b)) != -1) {
                fos.write(b, 0, len);
            }
        }
    }

    //拿到每个文件夹中文件对象的方法
    public static ArrayList<File> BLfile(File dir, ArrayList<File> list) {

        if (dir.isFile()) {
            list.add(dir.getAbsoluteFile());
            return list;
        }
        File[] f1 = dir.listFiles();
        for (File f : f1) {
            if (f.isFile()) {
                list.add(f.getAbsoluteFile());
            } else {
                BLfile(f, list);
            }
        }
        return list;
    }
}

请问哪里出问题了,本人自己看不出,望解答

写回答 关注

1回答

  • Mars_d
    2018-07-04 19:59:20
    ArrayList<File> list = new ArrayList<>();
    这个泛型后面的<>中应该也是File,这样子他才是ok的。

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409771 学习 · 4388 问题

查看课程

相似问题