关闭套接字是否关闭流


  1. 我在一个遗留的java应用程序中工作,在许多文件中,使用了套接字和流,其中套接字正在关闭,但流没有关闭,这对于在关闭套接字之前关闭所有流是必要的吗。因为我收到"打开的文件太多错误",这个错误是因为没有关闭流吗。。。。。

  2. 关闭套接字也会自动关闭流吗?

来自Socket Javadoc:

关闭此套接字也将关闭套接字的InputStreamOutputStream

所以一般来说,关闭套接字应该足以关闭它创建的两个流。

您的"打开的文件太多错误"很可能是由其他原因引起的。

关闭其中任何一个都会关闭另外两个,但您应该关闭封装在套接字周围的最外面的输出流(或Writer)。关闭输入流和套接字。如果你自己不关闭最外面的输出流,它就不会被刷新,因此如果堆栈中有缓冲的outpput流或写入程序,你可能会丢失数据。您也可以在finally块中关闭套接字本身:事实上,缺少finally块很可能是您的问题的原因。

相关内容

  • 没有找到相关文章

最新更新