1

从我的文件夹目录中读取文件时,我遇到了 Broken Pipe Exception。请通过我的以下代码...

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 时出现 Broken Pipe

如何解决断管?我可以使用 PipedInputStream 吗?这是处理此异常的正确方法吗?

4

1 回答 1

2

它是由写入已被对等方关闭的连接引起的。

在这种情况下,对等点要么是 Web 浏览器,要么是 Web 客户端应用程序。

如果是前者,你无能为力。用户可以随时取消下载,这将导致管道损坏异常。

在第二种情况下,客户端应用程序可能有问题。

在任何一种情况下,您都无法在服务器代码中对此进行任何处理,除了记录它并忘记它。

于 2014-02-22T07:50:27.540 回答