分别使用BIO和NIO来实现文件的拷贝并比较两者的效率

本文通过对比FileInputStream+FileOutputStream、BufferedInputStream+BufferedOutputStream(BIO)以及ByteBuffer+Channel、MappedByteBuffer+Channel(NIO)四种方式实现文件拷贝,发现NIO在效率上优于BIO,且BufferedInputStream表现良好。在BIO中,由于read返回-1时未读满byte数组导致额外写入,而NIO的clear操作避免了此问题。

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

1. 本期竞争者有四位,分别是:

第一位:FileInputStream+FileOutputStream(BIO);

第二位:BufferedInputStream+BufferedOutputStream(BIO);

第三位:ByteBuffer+Channel(NIO);

第四位:MappedByteBuffer+Channel(NIO);

2. 分别实现文件拷贝操作:

第一位:FileInputStream+FileOutputStream:

    public void BIO_one() throws IOException {
        FileInputStream fin = new FileInputStream(new File(source));
        FileOutputStream fout = new FileOutputStream(new File(dest+"BIO_one.txt"));

        byte[] buf = new byte[1024];
        while (fin.read(buf) != -1){
            fout.write(buf);
        }
        fin.close();
        fout.close();
    }

第二位:BufferedInputStream+BufferedOutputStream:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值