繁体   English   中英

关闭 BufferedReader 和 System.in

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM