java中的接口是类吗
331
2022-10-06
java实现系统多级文件夹复制
本文实例为大家分享了java实现系统多级文件夹复制的具体代码,供大家参考,具体内容如下
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 需求:复制多级文件夹
*
* 数据源:D:\\1
* 目的地:F:\\新建文件夹
*
* 分析:
* A:封装数据源File
* B:封装目的地File
http:// * C:判断该File是文件夹还是文件
* a:是文件夹
* 就在目的地目录下创建该文件夹
* 获取该File对象下的所有文件或者文件夹File对象
* 遍历得到每一个File对象
* 回到C
* b:是文件
* 就复制(字节流)
*/
public class C1 {
public static void main(String[] args) throws IOException {
File srcFolder = new File("D:\\1");
File dstFolder = new File("F:\\新建文件夹");
judge(srcFolder,dstFolder);
}
private static void judge(File srcFolder,File dstFolder) throws IOException {
if(srcFolder.isDirectory()){
File newFolder = new File(dstFolder,srcFolder.getName());
newFolder.mkdir();
File[] fileArr = srcFolder.listFiles();
for(File f:fileArr){
judge(f, newFolder);
}
}else{
File newFile = new File(dstFolder,srcFolder.getName());
// System.out.println(newFile);
copyFile(srcFolder,newFile);
}
}
private static void copyFile(File srcFolder, File newFile) throws IOException {
// TODO Auto-generated method stub
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcFolder));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(newFile));
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
bis.close();
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~