JAVA利用字节流完成拷贝文件夹。

来源:互联网 发布:牡丹江管理局电视网络 编辑:程序博客网 时间:2024/06/05 23:54

利用IO流中的字节输入输出流  完成拷贝文件夹

package com.decorator;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class CopyDirDemo {public static void main(String[] args) {// TODO Auto-generated method stubtry {CopyDirUtil.copyDir(new File("E:\\ff"), new File("F:\\cc"));System.out.println("success!");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}class CopyDirUtil{public static void copyDir(File src,File dst) throws IOException{//这里传入的两个参数  一个是源文件夹,一个是目标文件夹dst.mkdirs();//这个方法如果要创建E:\\aa\\bb  若没有aa文件夹   会自动创建aa 再创建bb//dst.mkdir();这个方法如果要创建E:\\aa\\bb  若没有aa文件夹   会报错if(src!=null){//如果源文件存在File[] files = src.listFiles();//遍历源文件夹中的文件或目录if(files!=null){//files不为空,这里的意思就是如果源文件夹不为空for(File f:files){//遍历文件夹中的内容//如果f是文件,复制文件   用字节流来复制if(f.isFile()){FileInputStream fiStream=new FileInputStream(f);//读fFileOutputStream foStream=new FileOutputStream(dst.getAbsolutePath()+"\\"+f.getName());//拷贝到目标文件夹byte[] buff=new byte[1024*1024];//自定义一个字节缓冲区int len=0;//保存的读到的字节的个数while((len=fiStream.read(buff))!=-1){foStream.write(buff,0,len);}fiStream.close();//关闭读资源foStream.close();//关闭写资源}else{//如果f不是文件  则递归copyDir(f,new File(dst.getAbsolutePath()+"\\"+f.getName()));;}}}}}}