Java 如果你不';你不能关闭URL连接吗?

Java 如果你不';你不能关闭URL连接吗?,java,inputstream,Java,Inputstream,如果不关闭下面的输入流,会发生什么情况 InputStream is = new URL(queryUrl).openStream(); 既然它是一个URL连接,在请求后自动关闭是否足够智能 我试着看了一下文档,但它很模糊。从我们收集的信息来看,这与执行HTTPUrlConnection.getInputStream()相同 我只是想弄清楚不做is.close()的影响。这肯定会导致资源泄漏吗?当您调用close时,相关的系统资源将被释放。如果您查看方法URL.openStream() 根据j

如果不关闭下面的输入流,会发生什么情况

InputStream is = new URL(queryUrl).openStream();
既然它是一个URL连接,在请求后自动关闭是否足够智能

我试着看了一下文档,但它很模糊。从我们收集的信息来看,这与执行
HTTPUrlConnection.getInputStream()
相同


我只是想弄清楚不做
is.close()
的影响。这肯定会导致资源泄漏吗?

当您调用
close
时,相关的系统资源将被释放。如果您查看方法
URL.openStream()

根据javadoc,它返回一个
URLConnection

在请求后对URLConnection的InputStream或OutputStream调用close()方法可能会释放与此实例关联的网络资源,除非特定的协议规范为其指定了不同的行为

例如,如果您看到,他们的文档会说:

在请求后对HttpURLConnection的InputStream或OutputStream调用close()方法可能会释放与此实例关联的网络资源,但对任何共享的持久连接都没有影响。如果持久连接在当时处于空闲状态,则调用disconnect()方法可能会关闭底层套接字


干杯

对。它将泄漏套接字,直到程序终止,然后操作系统将回收它们。
public final InputStream openStream() throws java.io.IOException {
   return openConnection().getInputStream();
}
public URLConnection openConnection() throws java.io.IOException {
   return handler.openConnection(this);
}