我从文件夹目录中读取文件时遇到了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时发生了断管;
我如何解决断管?我可以使用PipedInputStream吗?这是处理此异常的正确方法吗。
答案 0 :(得分:1)
这是由写入已经被对等方关闭的连接引起的。
在这种情况下,对等方是Web浏览器或Web客户端应用程序。
如果是前者,你无能为力。用户可以随时取消下载,这将导致管道异常中断。
在第二种情况下,客户端应用程序可能有问题。
在任何一种情况下,你都无法在服务器代码中做到这一点,除了记录它并忘掉它。