JAVA版本:使用字节流完成文件的复制

本文介绍使用字节流进行文件复制的方法,演示了如何通过Java代码高效地复制大文件,如1GB的压缩包,仅需约10秒。文章深入解析了字节流在文件读写过程中的应用,以及不同读取大小对复制速度的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用字节流完成文件的复制
计算机按照二进制进行存储,无论你存储的是什么数据,底层都是二进制的数据流,一般读取文件可以按照字符流和字节流两种方式读取,读取文件之后通过相应的编码软件进行解码,就能变成不同的文件。
我们对数据的操作也只是对底层数据的改变进行操作,使用字节流来拷贝文件,能让我们跟容易理解底层数据的迁移方式。
其实我只是觉得自己代码的迁移比系统自带的拷贝更加的快。
so,直接看代码:

 public static void main(String[] args) throws IOException {
        //用来计算程序运行的时间  从1970.01.01  00:00:00到现在的毫秒值
        long start_time = System.currentTimeMillis();
        //创建文件字节输入流
        FileInputStream in=new FileInputStream("D:\\IDEA\\ideaIU.zip");
        //创建文件字节输出流
        FileOutputStream out=new FileOutputStream("D:\\code\\ideaIU.zip");
        //将字节流整合成字节数组写入
        //每次读取文件的大小会很大程度影响拷贝速度,并不是越大越好,也不是越小越好
        byte []bs =new byte[1*1024*1024];//1M每次读入1M,
        //用于标记,是否结束
        int end=-1;
        //一边写入,一边写出
        while ((end=in.read(bs))!=-1){
            //则输出字节流
            out.write(bs,0,end);
            //刷新缓冲区
            out.flush();
        }
        //关流
        in.close();
        out.close();
        //输出结束时间
        long end_time=System.currentTimeMillis();
        //计算拷贝时间
        System.out.println("移动这个文件一共用时"+(end_time-start_time)/1000+"秒");
    }

我这里用这个代码移动了一个1G大小的文件,用时大约10S
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值