Answers:
从Java 11开始,有一个静态工具可以完全满足您的需要,它是一个静态工厂方法OutputStream.nullOutputStream()
:
返回一个丢弃所有字节的新OutputStream。返回的流最初是打开的。通过调用close()方法关闭流。随后对close()的调用无效。
/**Writes to nowhere*/
public class NullOutputStream extends OutputStream {
@Override
public void write(int b) throws IOException {
}
}
OutputStream nullOutputStream = new OutputStream() { @Override public void write(int b) { } };
Java似乎不是,但Apache Commons IO确实如此。看一下以下内容:
希望有帮助。
还没有提到,所以我还要添加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
类的作用。
不在标准库AFAIK中,但是通过覆盖OutputStream中的write来创建它并不难
Java 11添加了OutputStream.nullOutputStream()
镇上有一个新男孩,像个护身符一样照顾着这个,只需几行代码就可以工作。在那里引入了它的JDK 11和nullWriter(),可以解决这个问题。这里是处理相同旧问题,新方法的代码,而无需担心操作系统(OS)。
String fileContent = "Welcome to StackOverflow readers !! Here goes the question link...";
Writer writer = Writer.nullWriter();
writer.write(fileContent);
writer.close();
希望这可以帮助某人!
ByteArrayOutputStream
就是您想要的(假设API将输出文本)。只需实例化一个新的。