Java字节缓冲流复制单级文件夹的所有文件(详解)

使用字节缓冲流复制单级文件夹中的所有文件:
步骤:
1、创键数据源File对象
2、获取数据源对象的File对象名称
3、创键目标文件File对象
4、判断目标文件是否存在,不存在则创建,存在则跳过
5、获取数据源下的所有文件得到文件数组
6、使用增强for循环的方式遍历文件数组并将文件从数据源文件复制至目标文件中
7、释放资源

package 复制单级文件夹;

import java.io.*;

public class demo1 {
    public static void main(String[] args) throws IOException {
        //1、创键数据源File对象
        File data_source=new File("D:\\Java\\code");
        //2、获取数据源对象的File对象名称
        String source_name = data_source.getName();
        //3、创键目标文件File对象
        File target=new File("File",source_name);
        //4、判断目标文件是否存在,不存在则创键,存在则跳过
        if(!target.exists()){
            target.mkdir();
        }
        //5、获取数据源下的所有文件
        File[] files = data_source.listFiles();
        //6、获取files的文件名称
        for(File f:files){
            String file_name = f.getName();
            File fina=new File(target,file_name);//创键目标源文件路径是target路径拼接数据源文件名;
            copy(f,fina);//创键函数使用字节缓冲流从数据源中复制文件至目标文件中
            /*
            * 参数解析:
            * 1、f:(D:\Java\code\aa.jpg) 数据源文件
            * 2、fina:(File\code\aa.jpg) 目标文件
            */
        }
    }

    private static void copy(File f, File fina) throws IOException {
        //创键字节缓冲输入流对象————读取数据
        BufferedInputStream r=new BufferedInputStream(new FileInputStream(f));
        //创键字节缓冲输出流对象————写数据
        BufferedOutputStream w=new BufferedOutputStream(new FileOutputStream(fina));
        //利用字节数据的方式读取数据
        byte[] c=new byte[1024];
        int len;
        while ((len=r.read(c))!=-1){
            w.write(c,0,len);
            w.flush();//刷新
        }
        //释放资源
        w.close();
        r.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值