多次使用System.in不关闭的常用方法
Common way to use System.in several times without closing
我有一个控制台菜单,必须以不同的方法多次读取输入。我使用 new BufferedReader(new InputStreamReader(System.in))
来做到这一点。但是,如果这个 reader 在一个方法中被关闭,它就不再是 useable/openable 因为 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)
我有一个控制台菜单,必须以不同的方法多次读取输入。我使用 new BufferedReader(new InputStreamReader(System.in))
来做到这一点。但是,如果这个 reader 在一个方法中被关闭,它就不再是 useable/openable 因为 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)