在Java中IO流复制单个文件比较容易,如果需要复制带内容的文件
就需要一些判断的方法,下面是代码实现.
public class 题目三IO {
/**
* 实现多级目录复制
*/
public static void main(String[] args) throws IOException {
copy("f:\\aa","f:\\bb");
}
public static void copy(String src,String des) throws IOException {
//创建两个路径的文件对象
File file1 = new File(src);
File file2 = new File(des);
File[] files = file1.listFiles();
//判断要输出的文件夹是否存在,没有就创建
if (!file2.exists()){
file2.mkdirs();
}
//遍历
for (File thisFile : files) {
//如果是目录就继续递归调用本方法
if (thisFile.isDirectory()){
//创建对应目录下的文件夹
/*最核心的就是输出路径的写法,递归调用的时候会把上个文件的地址继续传入,
从而达到了多级目录复制.
*/
copy(thisFile.getPath(),des+"\\"+thisFile.getName());
}else if (thisFile.isFile()){
//是文件,直接复制过去
copyFile(thisFile.getPath(),des+"\\"+thisFile.getName());
}
}
}
public static void copyFile(String src,String des) throws IOException {
BufferedInputStream in = new BufferedInputStream(new FileInputStream(src));
BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(des));
int len;
byte[] buf= new byte[1024*8];
while ((len=in.read(buf))!=-1){
out.write(buf,0,len);
}
out.close();
in.close();
}
}
本文介绍了一种在Java中实现多级目录及其文件复制的方法。通过递归调用,可以复制源目录下所有子目录及文件到目标位置,适用于需要完整备份或迁移文件结构的场景。

2515

被折叠的 条评论
为什么被折叠?



