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

论点和论据不符合吧?

前面说缓冲流是用桶装水,理应最快,但从结果上看不应该是copyFile花的时间最短吗?而copyFile用的是byte数组

提问者:风铃飞弦 2017-01-06 16:27

个回答

  • 头发多
    2017-01-29 21:22:26
    已采纳

    copyFileByBuffer这里是一个字节一个字节读的--->(c=bis.read())!=-1,并非批量,应将它与copyFileByByte的速度相比,是快的。

    如果copyFileByBuffer使用字节数组读取--->(b=in.read(buf, 0, buf.length))!=-1,

    那么会比同样使用字节数组批量读取的copyFile快。

  • 明天在那里
    2017-01-07 16:43:55

    我个人认为复制文件最快的做法应该是批量读取到字节数组中然后使用缓冲输出流写入到文件。

    并且在循环写入的过程中不要flush,要不然就失去了缓冲的意义,毕竟缓冲输出流在关闭的时候会将所有缓冲区中的数据全部写入文件。(注:flush()是防止在close之前有缓冲没有完全读完就被强行关闭了文件,在网络连接传输数据容易出问题。去掉缓冲循环的flush()速度会快很多)