簡體   English   中英

如何解決Java中的管道損壞?

[英]How to solve Broken Pipe in Java?

從文件夾目錄中讀取文件時,我遇到了管道破裂的問題。 請通過我的以下代碼...

FileInputStream inputStream = new FileInputStream(file);
ServletOutputStream outputStream = response.getOutputStream();        
IOUtils.copy(inputStream, outputStream);
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly(outputStream);

在IOUtils.copy(inputStream,outputStream)中復制inputStream和outputStream時發生管道破裂。

我該如何解決斷管問題? 我可以使用PipedInputStream嗎? 這是處理此異常的正確方法。

這是由於寫入已被對等方關閉的連接引起的。

在這種情況下,對等方是Web瀏覽器或Web客戶端應用程序。

如果是前者,您將無能為力。 用戶可以隨時取消下載,這將導致管道異常。

在第二種情況下,客戶端應用程序可能出錯。

無論哪種情況,在服務器代碼中您都無能為力,只能記錄並忘記它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM