问答详情
源自:4-4 字节流之数据输入输出流

FileoutputStream

关于BufferedOutputStream和FileOutputStream的批量读取字节的方法的效率对比。 这里每次FileOutputStream其实是把数据写入了内存,然后flush()方法后才发送给文件,如果这里不用flush()方法,那个那些写入内存中的数据会系统会 自动的判断什么时候该发送,当达到某一个值的时候,否则,会在最后close()方法后发送出去,这样的效率也是很高的。 而批量读取就取决于每次读取和写入的byte[]的大小了。

提问者:guaerguagua 2015-01-31 02:39

个回答

  • Coda
    2015-01-31 09:04:58

    不用flush()的方法容易造成数据丢失。使用输出流发送数据时,当数据不能填满输出流的缓冲区时,这时数据就会被存储在输出流的缓冲区中。如果我们这个时候调用关闭(close)输出流,存储在输出流的缓冲区中的数据就会丢失。所以说,关闭(close)输出流时,应先刷新(flush)缓冲的输出流。