概述
package cn.itcast_05;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 需求:复制多极文件夹
*
* 数据源:G:Javademos
* 目的地:G:\
*
* 分析:
* A:封装数据源File
* B:封装目的地File
* C:判断该File是文件还是文件夹
* a:是文件夹
* 就在目的地目录下创建该文件夹
* 获取该File对象下的所有文件或者文件夹File对象
* 遍历得到每一个File对象
* 回到C
* b:是文件
* 就复制(字节流)
*/
public class copyFolderDemo {
public static void main(String[] args) throws IOException {
// 封装数据源
File srcFolder = new File("D:\a\demos");
// 封装目的地
File destFolder = new File("D:\");
// 复制文件夹功能
copyFolder(srcFolder, destFolder);
}
/**
* 复制文件夹方法
*
* @param srcFolder
* 数据源
* @param destFolder
* 目的地
*/
public static void copyFolder(File srcFolder, File destFolder)
throws IOException {
// 判断该File是文件还是文件夹
if (srcFolder.isDirectory()) {
// 文件夹
File newFolder = new File(destFolder, srcFolder.getName());
newFolder.mkdir();
// 获取该File对象下的所有文件或者文件夹File对象
File[] fileArray = srcFolder.listFiles();
// 遍历得到每一个File对象
for (File file : fileArray) {
copyFolder(file, newFolder);
}
} else {
// 文件
File newFile = new File(destFolder, srcFolder.getName());// G:d.txt
// 复制文件功能
copyFile(srcFolder, newFile);
}
}
/**
* 复制文件方法
*
* @param srcFolder
* 数据源
* @param newFile
* 目的地
*/
public static void copyFile(File srcFolder, File newFile)
throws IOException {
// 封装数据源
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.flush();
}
// 释放资源
bos.close();
bis.close();
}
}
最后
以上就是执着母鸡为你收集整理的IO流_复制多级文件夹案例的全部内容,希望文章能够帮你解决IO流_复制多级文件夹案例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复