问答详情
源自:4-5 字节缓冲流

缓冲区设置都是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

提问者:三爷JaVaja 2017-06-09 11:49

个回答

  • qHK丨DC
    2017-06-09 15:17:44
    已采纳

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