BufferedInputSream

本文详细解释了如何通过使用BufferedInputStream来提高文件读取效率,并对比了其与FileInputStream的工作原理,阐述了BufferedInputStream为何能更高效地读取文件。

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

一、使用BufferedInputSream的步骤

 

  1. 找到目标文件
  2. 建立数据的输入管道
  3. 建立缓冲输入字节流
  4. 关闭资源

二、BufferedInputSream 出现的目的是为了提高读取文件的效率,但是BufferedInputStream的read的方法每次读取一个字节数据,而FileInputStream每次也是读取一个字节的数据,那么BufferedInputStream效率从何而来?

 

BufferedInputStream:是从内存中的缓冲数组读取的。FileInputStream:是从硬盘中直接读取字节的。从内存读取的速度大于从硬盘读取的速度,所以BufferedInputStream效率更快。

三、为什么创建BufferedInputStream的时候需要传递FileInputStream?

BufferedInputStream 本身是不具备读文件的能力,所以需要借助FileInputStream

四、BufferedInputSream.close()

BufferedInputSream.close() 实际上关闭的是FileInputStream()

五、代码分析:

public static void readTest() throws IOException{
        File file=new File("E:\\a.txt");
        FileInputStream fileInputStream =new FileInputStream(file);
        BufferedInputStream bufferedInputStream=new BufferedInputStream(fileInputStream);
        int length=0;
        while((length=bufferedInputStream.read())!=-1){
            System.out.println((char)length);
        }
        
        bufferedInputStream.close();
    }

总之:BufferedInputSream 缓冲输入字节流 缓冲流入字节流的出现主要是为了提高读文件的效率,其实该类内部只不过维护了一个8kb的字节数组。

所以我们也可以使用FileInputStream,自己创建一个数组。

 

转载于:https://www.cnblogs.com/lyjs/p/5000310.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值