Java 中 null(Input/Output)Stream API 的用例是什么?
使用Java 11,我可以初始化一个as:InputStream
InputStream inputStream = InputStream.nullInputStream();
但是我无法理解 InputStream.nullInputStream
或类似 API 的潜在用例,即 OutputStream.nullOutputStream
。OutputStream
从API Javadocs中,我可以弄清楚它
返回不读取字节的新值。返回的流最初处于打开状态。通过调用 close() 方法关闭流。
InputStream
后续调用不起作用。当流处于打开状态时,、 、 、 ... 和方法的行为都像已到达流的末尾一样。
close()
available()
read()
read(byte[])
skip(long)
transferTo()
我进一步浏览了详细的发行说明,其中指出:
有很多时候,我想使用需要目标 OutputStream/Writer 作为参数来发送输出的方法,但希望以静默方式执行这些方法以获得其他效果。
这对应于 Unix 中将命令输出重定向到 /dev/null 或 DOS 中将命令输出追加到 NUL 的功能。
然而,我不明白声明中的这些方法是什么,如....以静默方式执行这些方法以获得其他效果。(归咎于我缺乏API的实践)
如果可能的话,有人可以帮助我理解在示例的帮助下拥有这样的输入或输出流有什么用处吗?
编辑:我在进一步浏览时可以找到的类似实现之一是apache-commons的NullInputStream
,它确实更好地证明了测试用例的合理性。