当前位置: 首页 > 面试题库 >

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

归誉
2023-03-14
问题内容

会隐式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/Au​​toCloseable.html


问题答案:

Closeable并且AutoCloseable是通用接口,对冲洗一无所知。因此,在他们的文档中找不到任何关于它的信息-
除了一些关于 释放资源的话

Writer另一方面,A
是一个更特定用途的抽象类,现在它对刷新有了一些了解。该方法的文档摘录Writer.close()

关闭流,先 冲洗

是的-使用作家时,a close也会总是flush。基本上,这意味着您在试图找出关闭实际上是在做什么时,必须查阅所用具体类的文档。



 类似资料:
  • 主要内容:Java SE 7:Try-With-Resources基础知识,Java SE 7:Try-With-Resources规则,Java SE 9:Try-With-Resources改进在这篇文章中,我们将讨论Java SE 9中的一些改进语句。现在让我们开始学习这个构造。 Java SE 7:Try-With-Resources基础知识 Java SE 7引入了一个新的构造: 语句,用于更好的异常处理。 如果没有这个构造,开发人员必须编写大量冗余和难看的代码。 如果开发人员忘记正确

  • 下面的try with resources语句是来自Java文档的示例 根据文件, 用资源尝试语句确保每个资源在语句末尾关闭。 我的问题是,为什么我需要在try关键字之后立即在括号内声明资源。(如上面的BuffereReader) BufferReader实现了java。lang.AutoCloseable 所以为什么不支持这样的事情, 一旦退出尝试,就隐式关闭资源对象。(正如它所实现的自动关闭)

  • 本文向大家介绍如何在JDBC中使用try-with-resources?,包括了如何在JDBC中使用try-with-resources?的使用技巧和注意事项,需要的朋友参考一下 每当我们实例化并使用某些对象/资源时,都应显式关闭它们,否则有可能发生资源泄漏。 通常,我们使用finally资源使用close资源作为- 从JSE7开始,引入了try-with-resources语句。在这种情况下,我

  • 示例: 我没有任何对或的引用,它们也会被关闭吗? 谢啦

  • 问题内容: 我有一种使用JDBC从数据库中获取用户的方法: 我应该如何使用来改进此代码? 我已经尝试使用下面的代码,但是它使用了很多块,并且并没有太大地提高可读性。我应该以其他方式使用吗? 问题答案: 在你的示例中,无需进行外部尝试,因此你至少可以从3降为2,并​​且也不需要在资源列表的末尾关闭。使用两个try块的优点是所有代码都在前面显示,因此你不必引用单独的方法:

  • 问题内容: 我试图通过使用常规try-catch-finally语句重新创建新的try-with- resources语句 来了解其工作方式。给定以下使用Java 7 try-with-resources的测试类: 您将如何重写此类以使用try-catch-finally语句,该语句所产生的字节码与try-with- resources语句所产生的字节码完全相同?同样,当使用两个资源时,同样的问题