我的问题在某种程度上与此类似: what's the purpose of BufferedOutputStream? 我已经阅读了那里的答案,但仍有一件事我不太明白: 因此,在 Java 中,BufferedOutputStream 有一个内部缓冲区。如果此缓冲区已满或调用了flush(),它将数据写入底层OutputStream(传递给BufferedOutputStream 的构造函数的那个)。 到目前为止还可以。但对我来说,实际上任何 OutputStream 都会有这样的缓冲区 - 因为基类 OutputStream 有一个方法lush()。该方法的描述如下:“刷新该输出流并强制写出任何缓冲的输出字节。” 那么...如果所有 OutputStream 都有一个缓冲区,那么 BufferedOutputStream 有什么好处呢? 可能我误解了一些东西......你能帮助我吗?
您好, 丹尼尔
最佳答案
基类OutputStream
是抽象的。这意味着它定义了所有输出流的接口(interface)和一些常见行为。您无法实例化 OutputStream
实例。
文档明确指出
The flush method of OutputStream does nothing.
是否使用缓冲区由具体实现决定。
关于java - java中BufferedOutputStream有什么好处?不是每个OutputStream都有一个缓冲区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46753493/