6
Reader rdr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(rdr);
String s;
s = br.readLine();
br.close();
Scanner sc = new Scanner(System.in);
s = sc.nextLine();
System.out.print(s);

我注意到,如果我关闭BufferedReader,我将无法再从键盘插入输入,因为System.in它以某种方式关闭了。无论如何我可以保留br.close()(我需要它才能删除文件)然后从键盘添加更多输入?

4

2 回答 2

2

看起来你需要:

http://commons.apache.org/io/apidocs/org/apache/commons/io/input/CloseShieldInputStream.html

将它包裹在 System.in 中,然后再制作您的阅读器,然后一切都会好起来的,因为当您使用 FileInputStream 时您不会这样做。

于 2011-11-20T19:28:05.067 回答
0

如果您只想通过 System.in 从键盘获取输入,请使用静态 BufferedReader 包装 InputStreamReader(也包装 System.in)。像这样:

 Public BufferedReader is = new BufferedReader(new InputStreamReader(System.in));

is.close(); 在您的应用程序终止之前需要。

于 2014-12-04T00:17:14.540 回答