【问题标题】:How can I fix an "IOException: Stream closed" exception using System.in?如何使用 System.in 修复“IOException:流已关闭”异常?
【发布时间】:2012-03-10 02:41:06
【问题描述】:

我正在编写一个使用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() 来读取另一个文件名时,我得到了以下异常:

线程“主”java.io.IOException 中的异常:流已关闭

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

【问题讨论】:

    标签: java ioexception system.in


    【解决方案1】:

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

    br.close();
    

    您在读取文件名后发出的。

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

    【讨论】:

    • 谢谢,我会这样做的。但是有什么方法可以使用相同的缓冲阅读器吗?这只是出于好奇。
    猜你喜欢
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多