【问题标题】:Will a PrintWriter without assignment to a variable close after using? [duplicate]使用后没有分配给变量的 PrintWriter 会关闭吗? [复制]
【发布时间】:2016-08-14 15:21:27
【问题描述】:

new PrintWriter(ExampleStream).print("Just Something");

PrintWriter pw = new PrintWriter(ExampleStream);
pw.print("Just Something");
pw.close();

那么 PrintWriter 会关闭吗?

【问题讨论】:

标签: java io stream printwriter autocloseable


【解决方案1】:

没有。

从技术上讲,Java 中的匿名术语是指创建一个没有名称的本地类。您所做的只是创建一个类的实例,而不将其分配给变量。

【讨论】:

    【解决方案2】:

    不,它们都不是同一种情况

    在您的第二个示例中,问题 PrintWritter 将在执行 pw.close() 时立即关闭。而

    在您的问题的第一种情况下,printwriter 不会立即关闭。调用后 --> new PrintWriter(ExampleStream).print() 由于您没有对其对象的任何引用,因此您不能再次使用同一对象,这意味着它有资格被垃圾收集器删除。由于我们不能说垃圾收集器何时运行,这就是为什么无法确定何时删除该对象。要记住的更重要的一件事是,即使垃圾收集器可能会删除此对象,但该过程与 pw.close() 不同

    【讨论】:

      猜你喜欢
      • 2015-08-22
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多