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

缓冲区设置都是1024 为啥用byByte只用50ms 而Buffered要用10318ms

public static void main(String[] args)throws IOException {
String srcFile="D:\\imooc\\1.jpg";
String destFile="D:\\imooc\\2.jpg";
String destFile2="D:\\imooc\\3.jpg";
long start =System.currentTimeMillis();
IOUtil.CopyFileByBuffer(new File(srcFile), new File(destFile));
long end =System.currentTimeMillis();
System.out.println(end-start);
long start2 =System.currentTimeMillis();
IOUtil.copyFile(new File(srcFile), new File(destFile2));
long end2 =System.currentTimeMillis();
System.out.println(end2-start2);
}
缓冲区设置都是1024 为啥用byByte只用50ms 而Buffered要用10318ms

正在回答

1 回答

比如从一个缸往另一个缸中倒水,前者直接到,后者是有缓冲区的,相当于一个桶,然后往桶里加水,然后再往另一个缸中到。  字节数组最快(批量),有缓冲区的次之(一杯一杯加到桶里再将桶中的倒入缸中),一个字节一个字节最慢(相当于一杯一杯)。  太详细的有点啰嗦,将就看吧。


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

三爷JaVaja 提问者

非常感谢!
2017-06-10 回复 有任何疑惑可以回复我~
#2

三爷JaVaja 提问者

好像明白了 又重新看了下 他那里用CopyByByte是没有缓冲数组buf的 所以是真正的一滴一滴移动,我这里有缓冲所以就快很多
2017-06-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

缓冲区设置都是1024 为啥用byByte只用50ms 而Buffered要用10318ms

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