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

Java中IOUtils.copy(in,out)方法,关于缓冲byte[]buffer的问题

Java中IOUtils.copy(in,out)方法,关于缓冲byte[]buffer的问题

青春有我 2019-04-13 08:46:34
内部的缓冲byte[]buffer,定义的大小为4096,如果要写的io流内容超过这个大小呢贴个源码:publicstaticintcopy(InputStreaminput,OutputStreamoutput)throwsIOException{longcount=copyLarge(input,output);if(count>Integer.MAX_VALUE){return-1;}return(int)count;}publicstaticlongcopyLarge(InputStreaminput,OutputStreamoutput)throwsIOException{returncopyLarge(input,output,newbyte[DEFAULT_BUFFER_SIZE]);//大小为4096}publicstaticlongcopyLarge(InputStreaminput,OutputStreamoutput,byte[]buffer)throwsIOException{longcount=0;intn=0;while(EOF!=(n=input.read(buffer))){output.write(buffer,0,n);count+=n;}returncount;}也没看见对buffer有什么别的处理呀?如果buffer大小不够呢?
查看完整描述

2 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

你觉得缓冲区应该有多大?如果你要复制一个几百MB的文件,那缓冲区也要有几百MB大小?
缓冲区就像一个推车,来往于i/o端,运送数据,作用就是减少了来往的次数,减少了开销。
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 2810 浏览
慕课专栏
更多

添加回答

举报

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