gpt4 book ai didi

java - 使用 try-with-resources 时是否需要调用 flush()

转载 作者:IT老高 更新时间:2023-10-28 20:59:17 25 4
gpt4 key购买 nike

try-with-resources 会隐式调用 flush() 吗?

如果是这样,在下面的代码片段中,bw.flush() 可以安全删除吗?

static void printToFile1(String text, File file) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
bw.write(text);
bw.flush();
} catch (IOException ex) {
// handle ex
}
}

ps。我在官方文档中没有看到任何关于它的描述:

https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html

最佳答案

CloseableAutoCloseable是通用接口(interface),对刷新一无所知。所以你在他们的文档中找不到任何关于它的信息——除了一些关于释放资源的词。

一个 Writer另一方面是一个更具体用途的抽象类,它现在知道一些关于刷新的事情。方法 Writer.close() 的文档摘录:

Closes the stream, flushing it first.

所以 - 是的 - 当使用编写器时,close 也将始终 flush。这基本上意味着您在尝试找出关闭的真正作用时必须查阅您正在使用的具体类的文档。

关于java - 使用 try-with-resources 时是否需要调用 flush(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32324492/

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