为了账号安全,请及时绑定邮箱和手机立即绑定

BufferedInputStream FileInputStream 效率问题

BufferedInputStream FileInputStream 效率问题

zhangxianggis 2015-11-24 17:24:09
为什么测试时BufferedInputStream/BufferedOutputStream 复制文件比 比FileInputStream/FileOutputStream(开辟了byte[] buf = new byte[8*1024]缓冲数组)要慢呢? (我自己测试时也是如此 BufferedOutputStream 中的flush已写在了循环外)
查看完整描述

2 回答

?
天启之魂

TA贡献174条经验 获得超85个赞

好吧 这个我没仔细看过 反正两种一个时系统给的缓冲区 一个相当于时自定义缓冲区 速度应该差别不会太大

查看完整回答
反对 回复 2015-11-26
  • zhangxianggis
    zhangxianggis
    奇怪的就是复制一个40多M的文件BufferedInputStream/BufferedOutputStream用了6976ms FileInputStream/FileOutputStream用了219ms 怎么就差了30倍
  • 天启之魂
    天启之魂
    那应该就是你的代码有问题了。。。我也试过用两个方法复制6m多的文件 速度几乎没区别
?
天启之魂

TA贡献174条经验 获得超85个赞

有可能阿 缓冲区的大小应该没有你设定的数组大,所以效率没你自定义的缓冲区效率高 是可能的 最高的效率的是你讲数组设定成文件的大小一次搞定的那是缓冲区越大 有对内存要求越高等其他问题

查看完整回答
反对 回复 2015-11-24
  • zhangxianggis
    zhangxianggis
    我看了BufferedInputStream的源码 默认的缓冲区大小也是8*1024 private static int defaultBufferSize = 8192;
  • 2 回答
  • 0 关注
  • 1924 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信