使用IO流来拷贝文件夹
时间: 2024-03-01 10:23:07 浏览: 67
把一个文件夹复制到另一个文件夹可以使用以下代码:
```java
import java.io.*;
public class CopyDirectory {
public static void main(String[] args) {
String source = "/path/to/source/folder";
String destination = "/path/to/destination/folder";
copyDirectory(source, destination);
}
public static void copyDirectory(String source, String destination) {
File sourceDir = new File(source);
File destDir = new File(destination);
if (!destDir.exists()) {
destDir.mkdir();
}
File[] files = sourceDir.listFiles();
for (File file : files) {
String name = file.getName();
if (file.isDirectory()) {
copyDirectory(source + "/" + name, destination + "/" + name);
} else {
copyFile(source + "/" + name, destination + "/" + name);
}
}
}
public static void copyFile(String source, String destination) {
try {
InputStream input = new FileInputStream(source);
OutputStream output = new FileOutputStream(destination);
byte[] buffer = new byte[1024];
int length;
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
input.close();
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们首先定义了源文件夹和目标文件夹的路径,然后调用`copyDirectory`方法来递归地复制文件夹。这个方法使用`listFiles`方法来获取源文件夹中的所有文件和文件夹,然后根据文件类型来调用`copyFile`或`copyDirectory`方法进行复制。`copyFile`方法使用输入和输出流来复制文件。我们使用一个缓冲区来读取和写入文件,这样可以提高复制速度。最后,我们关闭输入和输出流,以确保所有资源都被释放。
阅读全文