A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© せR3n、何必装纯 黑马帝   /  2011-11-24 17:08  /  3225 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

BufferedOutputStream类提供了flush(),write(byte[] b, int off, int len),write(int b) 方法,而这些方法OutputStream都有,那使用BufferedOutputStream还有什么作用呢?

9 个回复

倒序浏览
如果不用缓冲流的话,程序是读一个数据,写一个数据。这样在数据量大的程序中非常影响效率。
缓冲流作用是把数据先写入缓冲区,等缓冲区满了,再把数据写到文件里。这样效率就大大提高。
BufferedOutputStream该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
冯敏 黑马帝 2011-11-24 19:05:49
藤椅
BufferedOutputStream当然有用,它把数据写入缓冲区,如果不用此流,那么得读一次,写一次,那写一个比较大的文件,得访问多少次硬盘啊,举个例子:
假如有一个垃圾回收车,它把垃圾收到垃圾回收站可以有两种方式:
第一种:当垃圾少的时候,可以收到一个垃圾就送往垃圾回收站
第二种:当垃圾多的时候,就等垃圾回收车满了的时候再送到回收站
比较一下,看它有没有用

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
强子 黑马帝 2011-11-24 19:18:38
板凳
万事皆有源,存在即合理
回复 使用道具 举报
张晨 黑马帝 2011-11-24 19:30:01
报纸
写文件一般都用这个,因为效率高
回复 使用道具 举报
一句话:效率大大的提高了。
回复 使用道具 举报
wanghongye 黑马帝 2011-11-27 19:25:29
7#
buffer表示缓冲的意思,当我们把一些数据取出后可以暂时不把它拿走而是先存储起来,当存储足够多的时候再一次性的把它取走,这样就提高了效率。举个例子:我们喝水时可以对着水龙头一滴一滴的喝,但当我们拿个杯子接满水之后再大口大口的喝时间可以很快喝好,这样就提高了效率。BufferedOutputStream的作用就是为了提高写的效率而存在的。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
凡是带了缓冲区的,都可以提高效率.
其次BufferedOutputStream继承了OutputStream,增强了程序的可扩展性.
回复 使用道具 举报
颜小飞 黑马帝 2011-11-28 15:40:38
9#
它采有一个内部缓冲区数组缓存数据,从而提高磁盘的读写效率。
回复 使用道具 举报
刘一扬 黑马帝 2011-11-28 15:49:49
10#
BufferedOutputStream内部封装了一个字节数组,当你要执行write方法时, 并不是把数据直接写入到硬盘中,而是先写入到BufferedOutputStream内部封装的字节数组中,当你调用flush方法刷流或者缓冲区已满时,就会一次性将缓冲区的数据吸入到硬盘上的文件上。 我们知道将数据写入到内存中比写入到硬盘上效率会快很多,所以每次将写入的数据先保存在内存中然后再一次性写入硬盘比每次写入都写入到硬盘效率会更高 所以添加缓冲机制会让我们的程序更加高效

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马