字节缓冲流

该博客介绍了Java中的BufferedOutputStream和BufferedInputStream如何提高文件读写效率。通过创建缓冲区,这两个类减少了对底层系统的调用次数,实现了视频文件从"C:data船.mp4"到"C:datacopy.mp4"的高效复制。

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

一,BufferedOutputStream

是输出流的子类
FileOutputStream会导致底层系统的调用
而字节缓冲流可以向FileOutputStream写数据,通过设置一个缓冲区可以一次性将这些
数据写入到文件中,从而减少底层系统的调用
构造方法:BufferedOutputStream(OutputStream out)

二,BufferedInputStream

是输入流的子类
创建BufferedInputStream还会创建一个内部缓冲区数组,当从流中读取或者跳过
字节时,内部缓冲区会根据需要重新填充,同样减少了底层系统的调用
构造方法:BufferedInputStream(IntputStream out)

注意,字节缓冲流只是提供缓冲区,真正实现读写的还是基本的字节流对象

下面是利用字节缓冲流复制视频的代码

import java.io.*;

public class BufferTest {
    public static void main(String[] args) throws IOException {
        BufferedInputStream bis=new BufferedInputStream(new FileInputStream("C:\\data\\船.mp4"));
        BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("C:\\data\\copy.mp4"));
        byte[] bye=new byte[1024];
        int len;
        while((len=bis.read(bye))!=-1){
            bos.write(bye,0,len);
        }
        bis.close();
        bos.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值