【问题标题】:Java closing BufferedReader, Scanner and FileReaderJava 关闭 BufferedReader、Scanner 和 FileReader
【发布时间】:2012-12-23 10:52:50
【问题描述】:

在我的程序中,我解析文件。我这样打开它们:

Scanner s = new Scanner(new BufferedReader(new FileReader("file1.txt")));

然后像这样关闭它:

s.close();

我的问题是:当我执行s.close() 时,这是否也会关闭 FileReader 和 BufferedReader?

【问题讨论】:

  • Javadocs 说:... if its underlying readable also implements the Closeable interface then the readable's close method will be invoked.

标签: java java.util.scanner bufferedreader


【解决方案1】:

Java 文档说

public void close()

Closes this scanner.

If this scanner has not yet been closed then if its underlying readable also implements the Closeable interface then the readable's close method will be invoked. If this scanner is already closed then invoking this method will have no effect.

Attempting to perform search operations after a scanner has been closed will result in an IllegalStateException. 

由于BufferedReader已经实现Closeable,它会调用缓冲区读取器关闭方法。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-27
相关资源
最近更新 更多