java - 多次使用System.in而不关闭的常见方式

标签 java bufferedreader system.in

我有一个控制台菜单,必须以不同的方法多次读取输入。我使用 new BufferedReader(new InputStreamReader(System.in)) 来做到这一点。但是,如果此阅读器在方法中关闭,则由于 System.in,它就无法再次使用/打开。

要解决这个问题,一种可能性是 static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 因此它可以在 Main.br 的不同方法中多次使用。 readLine();.

这是一个好方法还是有更好的方法?

最佳答案

BufferedReader 传递到您的方法中(或使其成为共享字段),这样您就不必重新创建它。另外,您认为关闭 System.in (或包装 System.in 的内容)会导致问题,这是正确的。而不是

public void foo()

类似的东西

public void foo(BufferedReader reader)

关于java - 多次使用System.in而不关闭的常见方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30167322/

相关文章:

java - 使用 Scanner 时出现 NoSuchElement 异常

java - Zookeeper 未启动,nohup 错误

java - Android速度BufferedReader读取行和ArrayList添加和获取

java - 从字符串缓冲阅读器中读取所有行

java - 如何判断 Java 中使用的输入类型

java - 在什么情况下我应该使用System.in.close()?

java - 提取 PDF 注释/评论

java - 如何在 RestTemplate (Spring) 中最后执行 ClientHttpRequestInterceptor

java - java 对象无法被识别

java - Java 中的 BufferedReader 和枚举多行