gpt4 book ai didi

java - "java.io.IOException: Stream closed"与新的 BufferedReader

转载 作者:行者123 更新时间:2023-12-01 18:08:32 24 4
gpt4 key购买 nike

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

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方法被多次调用。第二次调用导致异常:流关闭。我不明白:为什么会变成这样?每次我们声明新的 BufferedReader 时。因此stream也必须是新的。或者不是?

如果没有,我应该如何组织我的程序,以便它在所有调用后以及程序结束后关闭阅读器?

最佳答案

因为System.in是一样的Object (public final static InputStream in; 类的 System )两个方法调用正在使用,关闭一个方法将自动关闭System.in对于其他方法。您应该关闭 BufferedReader外部(正如我所见,它是 public )完成调用 readString 后的方法因此它最终将关闭标的 System.in .

关于java - "java.io.IOException: Stream closed"与新的 BufferedReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34552774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com