概述
/*
* 需求:将指定目录(包含内容)复制到另一个目录中
*
* 源目录
目标目录
*
*
* 分析:
*
首先我们要获取源目录下所有的文件和子目录,
*
我们可以把源目录封装成一个File对象,
*
我们可以调用File类listFiles()方法,
*
我们可以获取源目录下所有的文件和子目录所对应的File对象。
*
如果我们获取到的是文件
*
先在目标目录中创建该文件所对应的目录,
*
进行文件的复制。
*
如果我们获取到的是子目录
*
看看子目录下面是否还有其他的文件和更深层次的子目录
*
*
*
*/
public class RecourrenceDemo02 {
public static void main(String[] args) throws IOException {
//
复制文件夹
File src = new File("D:\英雄时刻");
//源目录
File goal = new File("D:\aaaa");
//目标目录
copyFile(src,goal);
}
@SuppressWarnings("resource")
public static void copyFile(File src,File goal) throws IOException{
//为了严谨起见,我们首先对源目录和目标目录进行判断,看他们到底是不是目录
if(src.isDirectory() && goal.isDirectory()) {
//如果两个对象都是目录,需要创建新的目录
//文件的目录为:goal+src.getName
(D:\aaaa+英雄时刻)
File newFile = new File(goal,src.getName());
if(!newFile.exists()){
//判断文件夹是否存在
newFile.mkdirs();
//创建目录
}
//获取源目录下所有的文件和子目录
File[] list = src.listFiles();
for (File file : list) {
if(file.isFile()){
//如果文件是文件,就进行复制文件操作
FileInputStream in = new FileInputStream(file);
//newFile+遍历出file文件的名字(D:\aaaa\英雄时刻+file的名字))
FileOutputStream out = new FileOutputStream(new File(newFile,file.getName()));
byte[] by=new byte[1024];
int len;
while((len=in.read(by))!=-1){
out.write(by, 0, len);
}
in.close();
out.close();
}else{
//如果File对象是子目录,递归, 这里注意传入的对象,出错会出现堆内存溢出异常
copyFile(file,newFile);
}
}
}
}}
最后
以上就是灵巧烧鹅为你收集整理的需求:将指定目录(包含内容)复制到另一个目录中(利用字节流复制文本文件)的全部内容,希望文章能够帮你解决需求:将指定目录(包含内容)复制到另一个目录中(利用字节流复制文本文件)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复