作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下 try-with block 是否相似?在这两种情况下,dataSocket.getOutputStream()
都会关闭吗?
一)
try (Socket dataSocket = new Socket(...);
OutputStream socketStream = dataSocket.getOutputStream();
BufferedOutputStream outputStream = new BufferedOutputStream(socketStream)
) {.....}
b)
try (Socket dataSocket = new Socket(...);
BufferedOutputStream outputStream = new BufferedOutputStream(dataSocket.getOutputStream())
) {.....}
注意。在 b) 中,dataSocket.getOutputStream()
没有显式变量,在 a) 中,我们有 socketStream
。
最佳答案
根据BufferedOutputStream
JavaDoc,
Closes this output stream and releases any system resources associated with the stream.
关闭outputStream
将关闭底层输出流。 BufferedOutputStream
的 close() 方法的源代码也证明了这一点。
public void close() throws IOException {
try {
flush();
} catch (IOException ignored) {
}
out.close();
}
关于java - 隐式和显式可关闭对象的尝试行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23324033/
我是一名优秀的程序员,十分优秀!