1

我正在将一些数据写入PipedOutputStream,我已将它连接到PipedInputStream,我将它们传递给了一些第三方API。 写入PipedOutputStream是在另一个线程上异步完成的。从PipedOutputStream到PipedInputStream的Bubble IOException

当PipedOutputStream抛出IOException时,对相应的PipedInputStream有什么影响?它是否也会抛出异常?我认为这是所需的行为,因为InputStream应该提供的内容不完整。

如果情况并非如此,我该如何模拟这种效应?

注意:PipedOutputStream包装在自动确定OutputStream的try-with-resources语句中。

回答

0

只有在关闭连接的PipedInputStream时,才能在PipedOutputStream上获得IOException。这意味着在那个时候你不能从输入中读取。没有办法如何提供人为IOException。

+0

[文档](http://docs.oracle.com/javase/7/docs/api/java/io/PipedOutputStream.html)在此不清楚。它说'write'会抛出_IOException - 如果管道损坏,未连接,关闭,**或发生I/O错误**。这最后一部分让我觉得我必须保护自己。 – neXus