gpt4 book ai didi

java - FilterOutputStream 的使用

转载 作者:搜寻专家 更新时间:2023-11-01 04:04:28 25 4
gpt4 key购买 nike

FilterOutputStream 在 Java 中的实际用法是什么?来自 javadocs:

This class is the superclass of all classes that filter output streams. These streams sit on top of an already existing output stream (the underlying output stream) which it uses as its basic sink of data, but possibly transforming the data along the way or providing additional functionality.

对我来说,它似乎具有与 OutputStream 相同的方法(也许它出于某种原因覆盖了它们?)。它提供什么样的数据“转换”,什么时候可以在自己的 Java 应用程序中使用它?

最佳答案

Joshua Bloch 在 Effective Java Item 16: Favor composition over inheritance 中解释了为什么继承并不总是完成这项工作的最佳工具。通常使用 Decorator 更有效图案。 FilterOutputStream 和 FilterInputStream 是实现此模式的基础。例如我想阻止 OutputStream.close。这是我能做的

class NonCloseableOutputStream extends FilterOutputStream {

public NonCloseableOutputStream(OutputStream out) {
super(out);
}

@Override
public void close() throws IOException {
// ignore
}
}

现在我的类可以接受 OutputStream 的任何子类并使其不可关闭。

关于java - FilterOutputStream 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17563658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com