黑马程序员技术交流社区

标题: 关于BufferedOutputStream写数据的效率问题·!! [打印本页]

作者: hanchun776    时间: 2014-7-15 18:41
标题: 关于BufferedOutputStream写数据的效率问题·!!
在学到BufferedOutputStream的时候,老师说Buffered就为了提高写的效率而进行的缓存。效果类似于BufferedReader.
当时也是那么认为的,但是后来我自己做了一个复制视频的小程序,准备把“老友记第四季”的视频去掉原来啰嗦的文件名,统一用 count++ 序号代替。
可是程序运行之后的结果大大出乎我的意料,用BufferedOutputStreaBufferedInputStream进行读写,一个121MB的视频,竟然用了2分钟左右,


同条件下,用Windows的复制方法只要15秒钟左右,这可是七八倍的差距呀,


还有就是,如果用自己编写的MyBuffered的话,把缓冲区定义为 byte[] bt = new byte[1024]; ,这样的效率都比用BufferedOutputStrea和BufferedInputStream进行读写来的快的多。


请问这时为什么呢?不可能是java公司故意的吧,这样的效率还不如直接用FileOutputStream和FileInputStream算了!!根本没什么意义嘛!!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2