在没有关闭的情况下多次使用System.in的常用方法

时间:2015-05-11 12:12:19

标签: java bufferedreader system.in

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

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

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

1 个答案:

答案 0 :(得分:2)

BufferedReader传递给您的方法(或将其设为共享字段),这样您就不必重新创建它。此外,你是正确的,关闭System.in(或包裹System.in的东西)将导致你的问题。而不是

public void foo()

类似

public void foo(BufferedReader reader)