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

正在回答

4 回答

这里的数组应该相当于缓存   

0 回复 有任何疑惑可以回复我~

我仔细看了下buffered那个copy 的方法:

BufferedInputStream bis=new BufferedInputStream(

new FileInputStream(destFile));

BufferedOutputStream bos=new BufferedOutputStream(

new FileOutputStream(destFile));

int c;

while((c=bis.read())!=-1)//从这里看应该是一个一个字节的读取,但是他读出后先放到一个默认大小的缓冲区,因为是BufferedOutputStream。等到缓冲区满了,刷新缓冲区。

//而批量的那个copy 方法是一次就读取一块字节数组,所以是整块整块的读取数据的。所以批量读取的是最快的。

//BufferedOutputStream 可以改进成也是按照一块块的读取  在循环前面顶一个字节数组,代码我就不写了 这样应该是最快的

//总结下:BufferedOutputStream通过增加缓冲减少内存访问次数,以此来减少运行时间。而批量操作是读取单位变大了,每一次按照块来读,所以极大程度的降低了程序的运行时间。

这是我的想法。可以参考下。你有什么想法,我们可以交流下。


0 回复 有任何疑惑可以回复我~

这什么最佳垃圾答案 你有没有看过 前面的视频

0 回复 有任何疑惑可以回复我~

这个问题我也 再思考  怎么忽视缓存 最快啊

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么利用数组批量copy这么快啊?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信