我有一个控制台菜单,必须以不同的方法读取输入几次。我使用new BufferedReader(new InputStreamReader(System.in))
来做到这一点。但是如果这个阅读器在一个方法中被关闭,那么因为System.in
而无法再次使用/打开它。
要解决这个问题,有一种可能性是static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
,所以它可以在Main.br.readLine();
的不同方法中多次使用。
这是一种好方法还是有更好的方法?
答案 0 :(得分:2)
将BufferedReader
传递给您的方法(或将其设为共享字段),这样您就不必重新创建它。此外,你是正确的,关闭System.in
(或包裹System.in
的东西)将导致你的问题。而不是
public void foo()
类似
public void foo(BufferedReader reader)