简单地说,缓冲式输入输出流利用了缓冲区,而不是像一般的输入输出流那样,每次读取或写入数据都会引起对设备(如存放在磁盘上的文件)的访问。
具体说来,
缓冲式输入流BufferedInputStream(InputStream in),新建一个默认大小的缓冲流。从一个流中读取字符,而不会每次都引起对设备的访问。当缓冲区空的时候,一个新的数据块将会被读入缓冲区。
缓冲式输出流BufferedOutputStream(OutputStream out),新建一个默认缓冲大小的缓冲流。缓冲输出流收集写入的字符以避免每次都引起对设备的访问。当缓存区满或者被刷新里,数据被写入设备。
BufferedOutputStream与任何一个OutputStream相同,除了用一个另外的flush( ) 方法来保证数据缓冲器被写入到实际的输出设备。因为BufferedOutputStream是通过减小系统写数据的时间而提高性能的,可以调用flush( )方法生成缓冲器中待写的数据。不像缓冲输入,缓冲输出不提供额外的功能,Java中输出缓冲器是为了提高性能的。
输入流同理
你可以这样理解:
缓冲流 的 读写能力强,但是 读写完后必须刷新就是flush(); 方法
或者是直接将其关闭
其它的到是没有多大的差别