Java的平台无关/ dev / null输出接收器

除了一个匿名类( new OutputStream() { ... } )之外,是否有人可以建议在Windows上也可以使用new FileOutputStream("/dev/null")的道德等价物?

如果有人想知道’这是为了什么?’

我有一个程序,对文件进行一致性分析。 它有一个’详细’选项。 当verbose选项打开时,我想看到很多输出。 程序不是很匆忙,它是一个工具,所以不是编写所有那些额外的if语句来测试我是否需要输出,我只是想在不需要时将它写入bit-bucket。

您可以使用来自apache commons的NullOutputStream https://commons.apache.org/proper/commons-io/javadocs/api-2.4/org/apache/commons/io/output/NullOutputStream.html

或者只是实现自己的

 package mypackage; import java.io.OutputStream; import java.io.IOException; public class NullOutputStream extends OutputStream { public void write(int i) throws IOException { //do nothing } } 

NUL适用于Windows NT,但在* NIX中不起作用。

 output = new FileOutputStream("NUL"); 

更好地使用Commons IO的 NullOutputStream而不是平台独立。

只要你不关心轻微的性能差异(并且你不觉得你的空间不足),你可以使用“/ dev / null”。 在Windows上,它将在当前驱动器上创建一个真实文件(例如,c:\ dev \ null)。