我在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();
}
}