gpt4 book ai didi

Java 缓冲区和流 : Releasing underlying resources

转载 作者:行者123 更新时间:2023-12-04 06:35:01 25 4
gpt4 key购买 nike

情况1:

BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream(file) ) );
br.close();

案例二:
BufferedReader br = new BufferedReader( new FileReader(file) );
br.close();

案例3:
InputStream bis = new BufferedInputStream( new FileInputStream(src) );
bis.close();
close() 是什么意思做?

文档说:“关闭流并释放与之相关的任何系统资源。”

它是否也关闭了任何“基础”资源? 还是正确的代码是实例化所有缓冲区和流并一一关闭?

最佳答案

是的,底层资源被释放。 Java IO 流类是 Decorator pattern 的一个很好的例子。 ,即具有与其包含的对象相同的接口(interface)的对象。这允许 close()方法非常简单和优雅,例如就像是:

public void close() {
in.close();
}

如果 in本身就是一个装饰器,它的 close方法将递归关闭另一个资源。

如果您有兴趣, java.io源码可以查看 online here .

关于Java 缓冲区和流 : Releasing underlying resources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4976162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com