我有一个控制台菜单,必须以不同的方法多次读取输入。我使用 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/