java实现拷贝当前工作空间所有文件(含目录)
时间: 2023-02-06 10:02:38 浏览: 127
下面是一个示例代码,可以帮助你实现在 Java 中拷贝当前工作空间下的所有文件(包括目录):
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class CopyDirectory {
public static void main(String[] args) {
// 要拷贝的源目录
File srcDir = new File("src");
// 目标目录
File destDir = new File("dest");
try {
// 调用递归函数
copyDirectory(srcDir, destDir);
System.out.println("拷贝完成");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void copyDirectory(File srcDir, File destDir) throws IOException {
if (srcDir.isDirectory()) {
// 如果目标目录不存在,则创建
if (!destDir.exists()) {
destDir.mkdir();
}
// 获取源目录下的文件和子目录列表
String[] children = srcDir.list();
// 递归拷贝
for (String child : children) {
copyDirectory(new File(srcDir, child), new File(destDir, child));
}
} else {
// 如果源目录是文件,则直接复制
copyFile(srcDir, destDir);
}
}
public static void copyFile(File srcFile, File destFile) throws IOException {
// 创建输入流
InputStream in = new FileInputStream(srcFile);
// 创建输出流
OutputStream out = new FileOutputStream(destFile);
// 缓冲数组
byte[] buffer = new byte[1024];
int length;
// 循环读取数据,写入到输出流中
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
// 关闭输入流
in.close();
// 关闭输出流
out.close();
}
}
```
在这段代
阅读全文