本地文件的java.io.InputStream何时会在关闭时抛出异常?

时间:2012-01-22 22:23:20

标签: java file-io exception-handling

下午好。我知道如果我们close() java.io.OutputStreamit may throw an IOException存在硬盘错误。

至于java.io.InputStreamJavamex表示:

  
    

网络套接字的正常关闭实际上涉及通过连接发送的关闭请求(TCP / IP FIN数据包),并等待另一端确认此关闭请求。 (实际上,连接的另一端然后又发送一个闭包请求,结束端确认。)因此,在套接字输入流的情况下,闭包操作实际上涉及通过连接发送流量,因此闭包可以失败并出现错误。

  

现在我想知道在什么情况下本地文件的java.io.InputStream(或子类)(网络访问不需要永远投掷我们致电close()时出现异常?

1 个答案:

答案 0 :(得分:2)

以下是一种情况:

  • 应用程序的另一部分错误地关闭了与InputStream关联的基础文件描述符。当Java运行时调用系统close()函数时,它可能会收到EBADF错误,指示文件句柄无效。

上述情况可能表明应用程序中的其他地方存在严重错误。