【发布时间】:2012-12-03 15:22:28
【问题描述】:
来自OutputStream.flush() docs。
为什么它在文档中说明OutputStream 的flush 方法什么都不做 在解释它实际上做了一些事情之后?非常混乱。
【问题讨论】:
标签: java io outputstream
来自OutputStream.flush() docs。
为什么它在文档中说明OutputStream 的flush 方法什么都不做 在解释它实际上做了一些事情之后?非常混乱。
【问题讨论】:
标签: java io outputstream
OutputStream 是一个派生自的抽象类。子类将提供自己的实现如果需要。否则默认行为是什么都不做。
例如查看ObjectOutputStream.flush()的代码
【讨论】:
OutputStream 是一个抽象类。
如果需要刷新,派生实例必须覆盖它。
例如BufferedOutputStream。
没有缓冲区的流可能不需要覆盖flush()。
【讨论】:
public abstract void write(int b) 似乎是OutputStream 唯一未实现的方法。所有其他人都有默认实现(即使他们什么都不做)。
正文的第一部分是描述flush的总合同。扩展 OutputStream 的类应遵守此协定。
OutputStream 是一个抽象类,但提供了flush 的默认实现。如前所述,该实现什么也不做。
【讨论】: