【发布时间】:2015-11-26 06:28:37
【问题描述】:
try-with-resources 会隐式调用flush() 吗?
如果是这样,在下面的代码 sn-p 中,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
【问题讨论】:
-
没有。但是
close()无论如何都会进行冲洗。 -
到目前为止 5 个答案,all 引用了 javadoc。猜猜这是阅读文档的标志。
-
@ZhongYu
usually这个词是否如预期的那样工作? -
@Andreas 所有这些答案都引用了一些 Writer 类的 Javadoc。因此,他们都只回答了 OP 的第二个后续问题。只有一个答案解决第一个更一般的问题(但也没有真正回答它)。
-
@Qw3ry 你是什么意思?他们都回答了这个问题,引用
Writerjavadoc 说关闭自动刷新为您服务。问题完全是关于Writer,因为声明flush()的是 Writer 类,而不是 (Auto)Closeable 接口> 方法是问题的主要主题,因此该问题没有“更一般”的答案。