FileInputStream 和 BufferedInputStream 读取文件时的区别

相同点

  • .read(),每次读取1byte
    int temp;
    while ((temp = r.read()) != -1) {// 每次读取1byte
        System.out.println(temp);
        w.write(temp);// 写入文件
        //System.out.println("写入成功");
        }
  • 定义byte数组
        byte[] bytes = new byte[20];// 定义每次读取20字节数量
    while (r.read(bytes) != -1) {// 判断是否读完
        w.write(bytes);// 每次读取到bytes中,然后从bytes中取出写入文件20byte
        }

不同点

  • 声明方法
    BufferedInputStream r = new BufferedInputStream(new FileInputStream("src/file/file02.txt")
    FileInputStream r =new FileInputStream("src/file/file02.txt")

  • 读取方法
    FileInputStream每次都从硬盘读取数据
    BufferedInputStream有一个缓冲区,每次从缓冲区读取数据,缓冲区的大小默认为8192字节,在文件小于这个大小的时候Buffer的的读取速度要远大于File直接读取

    SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄