为什么复制文件夹内容需要花费大量时间在java

时间:2017-07-05 08:00:44

标签: java

我在java中编写了一个代码,用于使用流复制目录。工作很好,所有文件都被复制到适当的位置。但是,即使在复制目录中的最后一个剩余文件后,程序也会花费大量时间来终止。我只是想知道这是正常的还是我必须在我的代码中进行一些更改。这是我写的代码:

void copy_file(File source, File dest){

        File temp_file = new File(dest.getPath()+File.separator+source.getName());
        if(!temp_file.exists()){
            temp_file.mkdir();
        }

        File[] list = source.listFiles();
        if(list.length>0){
            for(File temp:list){
                if(temp.isFile()){
                    copy(temp, temp_file);
                }
                else{
                    copy_file(temp, temp_file);
                }
            }
        }
    }

    void copy(File source, File dest){
        System.out.print("\n Copying File: "+source.getName());
        try(FileInputStream fin = new FileInputStream(source);
            FileOutputStream fout = new FileOutputStream(dest.getPath()+File.separator+source.getName())){

            byte[] buffer = new byte[1024];
            int length;

            while((length = fin.read(buffer)) > 0){
                fout.write(buffer, 0, buffer.length);
            }
        }catch(FileNotFoundException e){
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }
    }

0 个答案:

没有答案