我需要指定一个OutputStream
我正在使用的API,但我实际上并不需要输出.Java有OutputStream
相当于> /dev/null
?
/**Writes to nowhere*/ public class NullOutputStream extends OutputStream { @Override public void write(int b) throws IOException { } }
Java看起来并不像Apache Commons IO那样.看看以下内容:
https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/output/NullOutputStream.html
希望有所帮助.
它还没有被提及,所以我还要添加Guava的ByteStreams.nullOutputStream(),因为有些人可能更喜欢Guava而不是Apache Commons IO,或者已经将它放在他们的项目中.
注意:如果您使用较旧版本的Guava(从1.0到13.0),则需要使用com.google.io.NullOutputStream.
重新提供已经提供的答案 -
Java没有NullOutputStream
类.然而,您可以滚动自己OutputStream
忽略写入其中的任何数据 - 换句话说write(int b)
,write(byte[] b)
并且write(byte[] b, int off, int len)
将具有空方法体.这就是Common IO NullOutputStream
类的功能.
从Java 11开始,有一个静态工具可以完全满足您的需要,它是一个静态工厂方法OutputStream.nullOutputStream()
:
返回一个丢弃所有字节的新OutputStream。返回的流最初是打开的。通过调用close()方法关闭流。随后对close()的调用无效。