import java.io.*;
public class Test {
public static void main(String[] args) {
//输入需要移动的文件夹,到哪个文件夹下的路径
copyFolder("D:/测试", "c:/");
}
public static void copyFolder(String file, String dest) {
//创建指定路径的文件对象
File srcFile = new File(file);
File destFile = new File(dest);
copyFolder(srcFile, destFile);
}
public static void copyFolder(File srcFolder, File destFile) {
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
File[] files = srcFolder.listFiles();
//如果该文件不存在,则不执行
if (files != null) {
//在指定的文件夹下创建同名的文件夹
File copyFolder = new File(destFile, srcFolder.getName());
copyFolder.mkdir();
//遍历该文件所有的第一级文件目录
for (File file : files) {
//如果是文件
if (file.isFile()) {
//读取该文件
bis = new BufferedInputStream(new FileInputStream(file));
//在指定路径下创建同名的文件,并指定输出的内容输出到该文件
bos = new BufferedOutputStream(new FileOutputStream(new File(copyFolder, file.getName())));
int temp = 0;
while ((temp = bis.read()) != -1) {
bos.write(temp);
}
//如果不是文件
} else {
//递归,如果是文件夹则继续
copyFolder(file, copyFolder);
}
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
//关闭输入输出流
if (bos != null) {
bos.close();
}
if (bis != null) {
bis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
java的IO流小作业,完成文件夹的拷贝,利用递归思想
最新推荐文章于 2023-11-15 21:24:57 发布