[英]Closing BufferedReader and System.in
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()
(我需要它来删除文件)然后从键盘添加更多输入?
看起来你需要:
http://commons.apache.org/io/apidocs/org/apache/commons/io/input/CloseShieldInputStream.html
在制作你的阅读器之前将它包裹在 System.in 周围,然后一切都会好起来的,因为当你使用 FileInputStream 时你不会这样做。
如果您只想通过 System.in 从键盘获取输入,请使用静态 BufferedReader 包装 InputStreamReader(也包装 System.in)。 像这样:
Public BufferedReader is = new BufferedReader(new InputStreamReader(System.in));
和is.close()
; 在您的应用程序终止之前需要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.