码迷,mamicode.com
首页 > 其他好文 > 详细

BufferedInputStream和BufferedOutputStream详解

时间:2015-06-17 21:35:24      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:缓冲区   io操作   装饰器   java   

这两个类分别是FilterInputStream和FilterOutputStream的子类,作为装饰器子类,使用它们可以防止每次读取/发送数据时进行实际的写操作,代表着使用缓冲区。

了解这两个类之前,我们有必要知道不带缓冲的操作,每读一个字节就要写入一个字节,由于涉及磁盘的IO操作相比内存的操作要慢很多,所以不带缓冲的流效率很低。带缓冲的流,可以一次读很多字节,但不向磁盘中写入,只是先放到内存里。等凑够了缓冲区大小的时候一次性写入磁盘,这种方式可以减少磁盘操作次数,速度就会提高很多!

而BufferedInputStream和BufferedOutputStream类就是实现了缓冲功能的输入流/输出流。

同时正因为它们实现了缓冲功能,所以要注意在使用BufferedOutputStream写完数据后,要调用flush()方法或close()方法,强行将缓冲区中的数据写出。否则可能无法写出数据。

与之相似还有BufferedReader和BufferedWriter两个类。

具体源码上的分析请参考博客http://icanfly.iteye.com/blog/1207397

BufferedInputStream和BufferedOutputStream详解

标签:缓冲区   io操作   装饰器   java   

原文地址:http://blog.csdn.net/u012483425/article/details/46537691

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!