如何解决Java中的断管问题?

如何解决Java中的断管问题?,java,socket.io,fileinputstream,socketexception,broken-pipe,Java,Socket.io,Fileinputstream,Socketexception,Broken Pipe,从文件夹目录读取文件时,我遇到了断管异常。请通过我下面的代码 FileInputStream inputStream = new FileInputStream(file); ServletOutputStream outputStream = response.getOutputStream(); IOUtils.copy(inputStream, outputStream); IOUtils.closeQuietly(inputStream); IOUtils.closeQu

从文件夹目录读取文件时,我遇到了断管异常。请通过我下面的代码

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客户端应用程序

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

在第二种情况下,客户端应用程序可能有故障


在这两种情况下,在服务器代码中,您对此都无能为力,只能记录并忘记它。

我接受您的观点。。这是正确的只是。。。但我想解决这个问题,若客户端有良好的浏览器…我不认为你们能理解。这与“客户端是否有一个好的浏览器”无关。如果用户浏览页面,或者取消下载,这就是用户想要做的。浏览器不应继续下载用户不再需要的内容。服务器上的结果:管道破裂。时期