求解,为什么不小心把输出流里面的新路径写成了旧路径,结果还是把文件复制到了新路径里面?

//将课件里面的所有MP4提取出来复制到自己创建的一个新文件夹中
public class Test02 {
public static void main(String[] args){
File file = new File("E:\课件");
long start = System.currentTimeMillis();
getVideoFiles1(file);
long end = System.currentTimeMillis();
System.out.println(end-start);
}

private static void getVideoFiles1(File file){
    File[] lf = file.listFiles(new FileFilter() {
        @Override
        public boolean accept(File pathname) {
            return pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".mp4");
        }
    });
    
    for (File fi : lf) {
        if(fi.isFile()){
            add(fi);
        }else{
            getVideoFiles1(fi);
        }
    }
}
public static void add(File f){
    
    //创建文件夹接收文件
    File file = new File("E:\\exd",f.getName());
    int num = 0;
    while (file.exists()){
        File file1 = new File("E:\\exd",file.getName()+(++num)+"_副本.mp4");
        file = file1;
    }
    //将得到的指定文件读取到内存
    try {
        file.createNewFile();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    System.out.println(file);
    System.out.println(f);
    try(
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f.getAbsolutePath()));
        //将读取的到的文件写入到新的路径
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file.getAbsolutePath()));) {
        byte[] bytes = new byte[bis.available()];
        bis.read(bytes);
        bos.write(bytes);
    } catch (Exception e) {
        e.printStackTrace();
    }    
}

}//将课件里面的所有MP4提取出来复制到自己创建的一个新文件夹中
public class Test02 {
public static void main(String[] args){
File file = new File("E:\课件");
long start = System.currentTimeMillis();
getVideoFiles1(file);
long end = System.currentTimeMillis();
System.out.println(end-start);
}

private static void getVideoFiles1(File file){
    File[] lf = file.listFiles(new FileFilter() {
        @Override
        public boolean accept(File pathname) {
            return pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".mp4");
        }
    });
    
    for (File fi : lf) {
        if(fi.isFile()){
            add(fi);
        }else{
            getVideoFiles1(fi);
        }
    }
}
public static void add(File f){
    
    //创建文件夹接收文件
    File file = new File("E:\\exd",f.getName());
    int num = 0;
    while (file.exists()){
        File file1 = new File("E:\\exd",file.getName()+(++num)+"_副本.mp4");
        file = file1;
    }
    //将得到的指定文件读取到内存
    try {
        file.createNewFile();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    System.out.println(file);
    System.out.println(f);
    try(
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f.getAbsolutePath()));
        //将读取的到的文件写入到新的路径
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file.getAbsolutePath()));) {
        byte[] bytes = new byte[bis.available()];
        bis.read(bytes);
        bos.write(bytes);
    } catch (Exception e) {
        e.printStackTrace();
    }    
}

}//将课件里面的所有MP4提取出来复制到自己创建的一个新文件夹中
public class Test02 {
public static void main(String[] args){
File file = new File("E:\课件");
long start = System.currentTimeMillis();
getVideoFiles1(file);
long end = System.currentTimeMillis();
System.out.println(end-start);
}

private static void getVideoFiles1(File file){
    File[] lf = file.listFiles(new FileFilter() {
        @Override
        public boolean accept(File pathname) {
            return pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".mp4");
        }
    });
    
    for (File fi : lf) {
        if(fi.isFile()){
            add(fi);
        }else{
            getVideoFiles1(fi);
        }
    }
}
public static void add(File f){
    
    //创建文件夹接收文件
    File file = new File("E:\\exd",f.getName());
    int num = 0;
    while (file.exists()){
        File file1 = new File("E:\\exd",file.getName()+(++num)+"_副本.mp4");
        file = file1;
    }
    //将得到的指定文件读取到内存
    try {
        file.createNewFile();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    System.out.println(file);
    System.out.println(f);
    try(
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f.getAbsolutePath()));
        //将读取的到的文件写入到新的路径
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file.getAbsolutePath()));) {
        byte[] bytes = new byte[bis.available()];
        bis.read(bytes);
        bos.write(bytes);
    } catch (Exception e) {
        e.printStackTrace();
    }    
}

}

代码如果没问题。或许是没有编译过去 尝试一下

img