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