一尘不染

关闭BufferedReader和System.in

java

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()(删除文件时需要它),然后从键盘添加更多输入吗?


阅读 330

收藏
2020-09-08

共1个答案

一尘不染

看起来您需要:

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

在制作读者之前,先将System.in环绕起来,然后一切都会好起来的,因为使用FileInputStream时不会这样做。

2020-09-08