Cierre BufferedReader y 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); 

Me di cuenta de que si cierro el BufferedReader , ya no podré insertar la entrada desde el teclado, ya que System.in está cerrado de alguna manera. ¿De todos modos puedo mantener br.close() (lo necesito para eliminar un archivo) y luego agregar más entradas desde el teclado?

Parece que necesitas:

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

Ajústalo a System.in antes de hacer tu lector, y todo irá bien, ya que no lo harás cuando uses FileInputStream.

Si solo desea obtener entrada desde el teclado mediante System.in, use el BufferedReader estático envolviendo InputStreamReader (también envolviendo System.in). Me gusta esto:

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

Y es.close (); sería necesario justo antes de que finalizara su solicitud.

Intereting Posts