【Java】缓存流

本文介绍了Java缓存流的作用,通过在读写过程中使用缓存,减少对硬盘的直接访问,从而提高性能。缓存流在读取时一次性加载大量数据到缓存,并从缓存中读取,写入时先存入缓存,达到一定量后才写入硬盘。这种方式利用了CPU与缓存的快速交互,显著提升了效率。

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

1.缓存流的引入
以介质是硬盘为例,字节流和字符流,在每一次读写的时候,都会直接访问硬盘,如果读写的频率比较高,其性能就会比较差;

因此,引入缓存流,缓存流在读取数据的时候,会一次性读取较多的数据到缓存中去,以后的每一次读取都是在缓存区中读取,直到缓存区的数据读取完毕,再到硬盘中读取。

缓存流在写入数据的时候,会先把数据写入到缓存区,直到缓存区达到一定的数量,才把这些数据一起写入到硬盘中。按照这种操作,就不会想字符流或字节流那样没写一个自己都访问硬盘。

缓存流的好处:CPU与缓存的交互速度很快;提高效率。
例如:

@Test
    public void test9() throws Exception {
//        //fout为低级流
//        OutputStream fout = new FileOutputStream("D:/A流/b.txt");
//        //bout为缓存流,缓存流装饰了低级流fout,bout读写字节先写缓存里,在写文件里
//        BufferedOutputStream bout = new BufferedOutputStream(fout);
//        //objout同时具备了缓存流和低级流的作用
//        ObjectOutputStream objout = new ObjectOutputStream(bout);
        ObjectOutputStream objout = new ObjectOutputStream(
                new BufferedOutputStream(
                        new FileOutputStream("D:/A流/b.txt")
                )
        );
        objout.writeObject("yjn");//写到缓存里面
        objout.flush();//在刷新的时候是写到了设备里面
        objout.close();//释放流的资源,流用完之后要关掉,否则很浪费资源
    }
   @Test
    public void test10() throws Exception {
//        InputStream aa = new FileInputStream("D:/A流/b.txt");
        ObjectInputStream objn = new ObjectInputStream(
                new BufferedInputStream(
                        new FileInputStream("D:/A流/b.txt")
                )
        );
        System.out.println(objn.readObject());
        objn.close();//释放流的资源,流用完之后要关掉,否则很浪费资源
    } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值