java - 如何使用 System.in 修复 "IOException: Stream closed"异常?

标签 java ioexception system.in

我正在编写一个使用 BufferedReader 读取和处理文件内容的简单程序。

BufferedReader br = new BufferedReader( new InputStreamReader(System.in) );

System.out.println("Enter the file name to read");
String fileName = br.readLine();
br.close();

// Process file contents

br = new BufferedReader( new InputStreamReader(System.in) );
System.out.println("Enter another file name to read");
fileName = br.readLine();
br.close();

但是当我调用第二个 br.readLine() 读取另一个文件名时,出现以下异常:

Exception in thread "main" java.io.IOException: Stream closed

我不明白如何关闭 System.in 流。 我犯了什么错误,我该如何解决?

最佳答案

流已关闭,因为您正在关闭它

br.close();

您在阅读文件名后发布。

不要关闭那个阅读器,也不要为 System.in 创建一个新阅读器 - 只需重新使用那个阅读器。不过,请使用不同的文件来读取文件。

关于java - 如何使用 System.in 修复 "IOException: Stream closed"异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9349580/

相关文章:

java - 需要帮助将 Java 泛型传递给 Collections.sort()

c# - 如何读取当前使用的文件,就像 Windows 在复制文件时所做的那样?

java - System.in 输入,java 但带有 apache ant

java - IOException 和 FileNotFoundException

android - 在 Android 中使用 jobb 工具

使用 Scanner 从标准读取 Java 给出错误结果

java - Java字符集-如何从System.in获得正确的输入?

java - getView() 从未在自定义适配器上调用过

java - .java 文件中的包私有(private)类 - 为什么可以访问它?

java - 如何单独解析并执行文件中的所有 SQL 语句?