当前位置: 首页 > 面试题库 >

使用新的BufferedReader的“ java.io.IOException:流已关闭”

邬承悦
2023-03-14
问题内容

很多人问这样的问题,但这个问题有些不同。这是代码:

public static BufferedReader reader;    
public static String readString() throws IOException {
            reader = new BufferedReader(new InputStreamReader(System.in));
            String s = reader.readLine();
            reader.close();
            return s;
        }

程序运行时readString方法被多次调用。第二个呼叫原因exception: stream closed。我不明白:为什么会这样呢?每次我们声明新的BufferedReader。所以stream必须也是新的。或不?

如果没有,我应该如何组织我的程序,以便在所有调用之后和程序结束后关闭读者?


问题答案:

因为System.in是相同Objectpublic final static InputStream in;
System两个方法类) 调用
使用,在一种方法闭会自动关闭System.in用于其它方法。一旦调用完成,您应该BufferedReader外部 关闭该方法(
如我所见publicreadString,这样它最终将关闭底层System.in




 类似资料:
  • 问题内容: 我使用Apache HTTP Client进行HTTPPost调用,然后尝试使用Jackson响应创建一个对象。这是我的代码: 方法makePublisherApiCall()将在一个循环中被调用,该循环运行100次。当我取消注释该行时,基本上会出现问题: 取消注释后,我得到异常: 否则,它将正常工作。有人可以让我知道我在做什么错。 问题答案: 什么是与响应实体呢?我会怀疑它正在消耗实

  • 问题内容: 我正在尝试下载一个zip文件,但出现了 Stream Closed Exception 。当我使用Swing GUI时,会出现此错误,但是如果我使用控制台,则不会有问题。为什么会出现此异常?我该如何解决? 这是我的代码: 这是堆栈跟踪 问题答案: 此异常通常表示连接突然关闭。我将查看服务器上的日志,看看是否有错误。

  • 在学习熊猫的过程中,我已经尝试了好几个月来找出这个问题的答案。我在日常工作中使用SAS,这是非常好的,因为它提供了非核心支持。然而,SAS作为一个软件是可怕的,原因还有很多。 有一天,我希望用python和熊猫取代SAS,但我目前缺乏大型数据集的核心外工作流。我说的不是需要分布式网络的“大数据”,而是文件太大,无法放入内存,但又小到足以放入硬盘。 我的第一个想法是使用在磁盘上保存大型数据集,只将我

  • 我想使用stream getfirst方法两次,但是出现了一个错误,即(java.lang.IllegalStateException:stream已经被操作或关闭),并且这个流代码以此处命名的注释开始。

  • 我是javaScript新手,现在不知道如何实现这一点。我的HTML中有带数字的“选择”。 当用户在此选择中选择数字时,js将创建用户选择的任意多个输入字段,如图中[ 如何做到这一点?

  • 问题内容: 我注意到,如果关闭,我将无法再从键盘插入输入,因为已经关闭了。无论如何,我可以保留(删除文件时需要它),然后从键盘添加更多输入吗? 问题答案: 看起来您需要: http://commons.apache.org/io/apidocs/org/apache/commons/io/input/CloseShieldInputStream.html 在制作读者之前,先将System.in环绕