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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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


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


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


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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马