Java IO 中 FileInputStream与BufferedInputStream的区别

一. 在类的定义上,FileInputStream是读文件的字节内容输入流,直接继承自InputStream,而BufferedInputStream继承自FilterInputStream包装器类,而不是直接继承InputStream,可见BufferedInputStream具有自己独特的功能。

 

二. 从读取方式上

        1. FileInputStream自己有读取功能,读取文件流时直接从原文件存在的硬盘或其他介质中读取

InputStream in = new FileInputStream("C:\\Users\ALL\\test.txt")

        2. 而BufferedInputStream自带缓冲区(默认大小为8192),它会将输入流中的数据分批读取至缓冲中,每调用一次read()方法读取时会从缓冲区读取一个字节,当缓冲区中的字节读取完毕,会调用fill()方法一次性对缓冲区进行填充。

        缓冲区的数据实际是存储与内存中的,而原始数据可能存在硬盘或其他介质中,建立缓冲区从中读取数据,可以提高效率。

        此外,BufferedInputStream作为包装器类得子类,自己并不带有读取功能,在创建对象时需要传入一个能读取内容的InputStream来实现读的功能。

BufferedInputStream buff = new BufferedInputStream(newFileInputStream("C:\\Users\\ALL\\test.txt"))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值