如何使用System.in修复“IOException:Stream closed”异常?

时间:2012-02-19 13:29:59

标签: 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()来读取另一个文件名时,我得到以下异常:

  

线程“main”中的异常java.io.IOException:Stream closed

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

1 个答案:

答案 0 :(得分:7)

流已关闭,因为您正在使用第一个

关闭它
br.close();

您在阅读完文件名后发出。

请勿关闭该阅读器,也不要为System.in创建新阅读器 - 只需重新使用该阅读器即可。使用不同的文件来读取文件。