War*_*zit 12 android inputstream outputstream
我知道一般的想法,但我不确定它是否有影响,因为Android api声明如下:"刷新此流.此方法的实现应确保写出任何缓冲的数据.此实现什么都不做."
这种实现没有任何作用< - 这是否意味着它无用或者我错过了什么?
如果您阅读有关oracle的扩展文档
http://download.oracle.com/javase/1.4.2/docs/api/java/io/OutputStream.html#flush()
刷新此输出流,并强制写出所有缓冲的输出字节。刷新的一般约定是,调用它的指示是,如果先前写入的任何字节已由输出流的实现缓冲,则应立即将这些字节写入其预期的目标。
OutputStream的flush方法不执行任何操作。
意味着,该方法本身不执行任何操作,并且它是抽象的,因此任何基础类都可以实现自己的刷新流版本并强制其进行写入(而不是在写入队列中等待)
但是无论如何,正如纪尧姆(Guillaume)指出的,无论如何都称呼它是一个好习惯。如果稍后再用其他使用流的实现替换流,那么您将感到抱歉。
根据操作系统的不同,flush()所做的只是强制将数据写入操作系统。
和
flush()在FileOutputStream上不执行任何操作。它仅对缓冲流有用。
并且从javadoc的close(),只是要注意,如果您要在之后立即关闭流,则不必刷新流。
关闭流,先冲洗。关闭流后,进一步的write()或flush()调用将导致引发IOException。但是,关闭先前关闭的流无效。
相关:在java.io.FileWriter中
写入大文件刷新时,FileOutputStream.close确实很慢