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

关于几种Output方法效率问题

FileOutputStream、DataOutputStream、BufferedOutputStream

老师你说的是BufferedOutputStream效率最高,可是结果却是FileOutputStream的代码只花了7毫秒,是怎么回事儿呢?

提问者:qq_Goinghome_0 2017-08-26 16:42

个回答

  • YI_F
    2017-08-27 15:36:19

    引用woider所讲的:

    使用缓冲字节流复制确实是最快的方式,但对于小文件10M以下的文件体现不出优势,对于百兆文件正确使用,时间可以控制到50ms内。视频中的缓冲字节流使用有错误,复制文件最快的做法是将批量读取到的字节数组使用缓冲写入到文件,在机器性能范围内字节数组越大越快。在循环写入的过程中不需要使用flush,就像cwt8805说的,缓冲输入流在关闭的时候会将所有缓冲区的数据全部写入文件,使用flush刷新缓冲就失去了缓冲的意义。最后关闭IO流和文件流应该在finally中关闭,否则IO异常时执行不到close语句,IO流仍然没有关闭。