public void flush() throws IOException
- 刷新此输出流并强制写出所有缓冲的输出字节。
flush
的常规协定是:如果此输出流的实现已经缓冲了以前写入的任何字节,则调用此方法指示应将这些字节立即写入它们预期的目标。如果此流的预期目标是由基础操作系统提供的一个抽象(如一个文件),则刷新此流只能保证将以前写入到流的字节传递给操作系统进行写入,但不保证能将这些字节实际写入到物理设备(如磁盘驱动器)。
OutputStream
的flush
方法不执行任何操作。 - 抛出:
IOException
- 如果发生 I/O 错误。其中Output Stream的flush()方法不执行任何操作
我现在以直他的子类中
ByteArrayOutputStream没有重写flush()方法,其他如
BufferedOutputStream, FileOutputStream,GZIPOutputStream都是重写了flush()的
不过这也很好理解,毕竟ByteArrayOutputStream,的缓存区是一个数组,且他没有需要输出流为参数的构造方法,刷新也没地方刷啊。
如有错误,希望指出。