java不使用递归完成目录拷贝
时间: 2023-06-10 07:05:25 浏览: 55
Java可以使用循环结构完成目录拷贝,不必使用递归。可以遍历源目录中的所有文件和子目录,并将它们复制到目标目录中。使用java.io包中的File类可以方便地操作文件和目录。下面是一个简单的示例代码:
```
import java.io.*;
public class DirectoryCopy {
public static void main(String[] args) throws Exception {
File sourceDir = new File("source");
File destDir = new File("target");
copyDir(sourceDir, destDir);
System.out.println("Directory copied successfully.");
}
private static void copyDir(File source, File dest) throws Exception {
if (!dest.exists()) {
dest.mkdirs();
}
File[] files = source.listFiles();
for (File file : files) {
File destFile = new File(dest, file.getName());
if (file.isDirectory()) {
copyDir(file, destFile);
} else {
InputStream is = new FileInputStream(file);
OutputStream os = new FileOutputStream(destFile);
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
is.close();
os.close();
}
}
}
}
```
以上代码实现了将一个源目录中的所有文件和子目录复制到目标目录中的功能,可以根据实际情况做一些修改来适应不同的需求。