java在关闭InputStream之前是否需要读取/跳过InputStream以完成它?
是否需要在关闭输入流之前读取/跳过输入流?如果未读取流,这会导致未来连接出现任何问题(使用keep alive)?使用Oracle JVM
InputStream is = null;
try {
URL url = new URL("http://example.com/executeTrigger?id=523");
is = url.openStream();
} catch (Exception ex) {
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
}
}
}
以上是有效的,还是应该在执行url.openStream()
之后立即调用is.skip(Long.MAX_VALUE)
# 1 楼答案
在TCP中,它将导致发送方获得“对等方重置连接”。web服务器用于浏览器消失、寻呼等,因此在这种情况下不会造成任何伤害,但如果实现应用程序协议,则情况会有所不同