下午好。我知道如果我们close() java.io.OutputStream,it may throw an IOException存在硬盘错误。
至于java.io.InputStream,Javamex表示:
网络套接字的正常关闭实际上涉及通过连接发送的关闭请求(TCP / IP FIN数据包),并等待另一端确认此关闭请求。 (实际上,连接的另一端然后又发送一个闭包请求,结束端确认。)因此,在套接字输入流的情况下,闭包操作实际上涉及通过连接发送流量,因此闭包可以失败并出现错误。
现在我想知道在什么情况下本地文件的java.io.InputStream(或子类)(网络访问不需要)永远投掷我们致电close()时出现异常?
答案 0 :(得分:2)
以下是一种情况:
close()
函数时,它可能会收到EBADF
错误,指示文件句柄无效。上述情况可能表明应用程序中的其他地方存在严重错误。