java文件夹复制的实现

class Copy{
	public static void main(String[] args){
		//需要复制的文件夹  源地址
		File srcFile=new File("D:\\测试")
		//复制到的地方   目的地
		File destFile=new File("E:\\")
		//文件夹复制的方法
		copyFileAll(srcFile,destFile);
	}
}
  • copyFileAll方法
public void copyFileAll(File srcFile,File destFile){
	//判断递归是否继续执行  判断file是否是一个文件,是文件则对文件继续复制
	//然后结束本次递归。
	if(srcFile.isFile){
		//创建输入流
		FileInputStream fis=new FileInputStream(srcFile.getAbsolutePath());
		//创建输出流
		String s=( destFile.getAbsolutePath().endsWith("\\")?destFile.getAbsolutePath() :destFile.getAbsolutePath() +"\\")+srcFile.getAbsolutePath().substring(3);
		FileOutputStream fos=new FileOutputStream(s);
		//读文件
		byte b[1024];
		
		int i=0//写文件
		while((i=fis.read(b))!=-1){
			//写入文件
				fos.write(0,i);
		}
		
		//结束递归
		return;
	}

	//获取源目录的所有   文件和目录
	File[] files=srcFile.listFiles();
	//用增强for 遍历数组即文件
	for(File file:files){
				//获取源地址路径
				String src=file.getAbsolutePath();
				//目的地址
				String dest=destFile.getAbsolutePatha().endsWith("\\")?destFile.getAbsolutePatha() : destFile.getAbsolutePatha()+"\\" )+src.substring(3);
				
				//创建 目的地址文件对象
				File destFile2=new File(dest);
				//判断是否为文件夹,没有文件夹创建文件夹
					if(!destFile2.isDirectory()){
						//创建文件夹方法
						destFille2.mkdir();
					}
					//递归调用方法。
					//遍历文件时有可能这个文件是一个文件夹或者是一个文件
					//当时一个文件夹时我们进行递归调用,是文件则直接复制
					//递归的过程不断打开一个文件夹然后再打开文件夹直到没有文件夹递归才结束
					copyFileAll(file,destFile);
	}
}

总结

文件夹的复制过程中,文件夹下的有可能是文件或文件夹;需要利用递归继续遍历文件夹直到遍历的最后是文件夹结束遍历;文件夹创建使用File里mkdir()方法进行创建。文件复制利用FileInputStream 和FileOutputStream进行读写入操作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值