当前位置: 代码迷 >> 综合 >> JAVA利用字节流完成拷贝文件夹。
  详细解决方案

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

热度:40   发布时间:2023-10-22 23:32:41.0

利用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()));;}}}}} }