【问题标题】:Do I have to close FileInputStream if I close Scanner如果我关闭 Scanner,我是否必须关闭 FileInputStream
【发布时间】:2021-04-05 20:00:05
【问题描述】:

我读过这个问题:Do I have to close FileInputStream?

如果我使用像 https://www.baeldung.com/java-scanner 这样的扫描仪并关闭扫描仪会怎样? scanner.close() 是否也关闭了 FileInputStream?

【问题讨论】:

标签: java java-stream


【解决方案1】:

是的,它会的。考虑以下代码:

FileInputStream inputStream = new FileInputStream("file.txt");
Scanner scanner = new Scanner(inputStream);
scanner.close();
System.out.println(inputStream.read());

这会引发java.io.IOException,因为流已关闭。

编辑:或者,如Slaw 所说,检查documentation

【讨论】:

  • 您的回答基本正确。它显示FileInputStream 将被关闭,但仅作为示例。还有一个更可靠的事实来源——documentation:“Scanner 关闭时,如果源实现了Closeable 接口,它将关闭其输入源”。
猜你喜欢
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 2010-11-14
相关资源
最近更新 更多