EchoDemo's Blogs

Java中使用字节流复制一个文件夹

1、案例介绍

使用字节流复制一个文件夹中的所有内容到指定的文件夹中。

2、案例设计

使用递归算法,使用字节缓冲区来提高程序效率。

3、案例实现:

package com.iotek.file;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyFileDemo {

    public static void main(String[] args) throws IOException {
        CopyUtil.copyDir(new File("f:\\haha"), new File("f:\\ee"));
    }
}

class CopyUtil{
    public static void copyDir(File src,File dst) throws IOException{
        dst.mkdirs();//相比于mkdir()会创建路径中本不存在的文件夹
        if(src!=null){
            File[] files = src.listFiles();//遍历原文件夹中的文件或目录
            if(files!=null){
                for(File f:files){
                    if(f.isFile()){//复制文件
                        FileInputStream fis = new FileInputStream(f);
                        FileOutputStream fos = new FileOutputStream(dst.getAbsolutePath() + "\\" + f.getName());
                        byte[] buffer = new byte[1024*1024];
                        int len = 0;//保存读到的字节个数
                        while((len = fis.read(buffer))!=-1){
                            fos.write(buffer,0,len);
                        }
                        fis.close();
                        fos.close();
                    }else {
                        copyDir(f, new File(dst.getAbsolutePath()+"\\"+dst.getName()));
                    }
                }
            }
        }
    }
}
🐶 您的支持将鼓励我继续创作 🐶
-------------本文结束感谢您的阅读-------------