输出流的刷新方法不执行任何操作?

2022-09-04 20:10:23

From OutputStream.flush() docs.

为什么在文档中声明 OutputStream 的 flush 方法在解释它实际上执行了某些操作后,它什么都不做?非常令人困惑。


答案 1

OutputStream是要从中派生的抽象类。如有必要,子类将提供自己的实现。否则,默认行为是不执行任何操作。

例如,请参阅 ObjectOutputStream.flush() 的代码


答案 2

OutputStream是一个抽象类。如果派生实例需要刷新,则必须覆盖它。例如.
没有缓冲区的流可能不需要覆盖 。BufferedOutputStreamflush()


推荐