Foros del Web » Programación para mayores de 30 ;) » Java »

Close BufferedReader

Estas en el tema de Close BufferedReader en el foro de Java en Foros del Web. Hola, a ver si alguien puede resolverme la duda. Tengo la siguiente porción de código para leer archivos de texto: ---------------------------------------------------------------------- try { File f ...
  #1 (permalink)  
Antiguo 27/01/2011, 11:54
 
Fecha de Ingreso: enero-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Close BufferedReader

Hola, a ver si alguien puede resolverme la duda.

Tengo la siguiente porción de código para leer archivos de texto:


----------------------------------------------------------------------
try {
File f = new File("ruta");
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);

/* Codigo tratando el fichero */

} catch (Exception ex) {
/*Tratando cualquier excepcion */
} finally {
/* Cerrando Streams (DUDA)
}
-----------------------------------------------------------------------

La pregunta es bastante simple creo... pero no se la respuesta

Si cierro el objeto "br" con br.close(), se cierra tambien "isr" y "fis"?

Es decir, basta con cerrar el buffer para cerrar los streams? o hay que cerrarlos uno a uno.

Esto me plantea la siguientes cuestiones:

-SI hay que cerrarlos uno a uno, que pasaría si en lugar de inicializar los streams por separado hiciera algo del estilo:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f));

Quedaría el fichero abierto?

Gracias de antemano
  #2 (permalink)  
Antiguo 27/01/2011, 15:05
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Close BufferedReader

Se cierran todos cerrando el más externo.

Cita:
ue pasaría si en lugar de inicializar los streams por separado hiciera algo del estilo:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f));
Esto es equivalente a tu trozo de código.

Si lees las API o te fijas en las opciones que te muestra tu IDE al llamar a un costructor, verás cosas como

http://download.oracle.com/javase/1....putStream.html
Cita:
FileInputStream(String name)
Creates a FileInputStream by opening a connection to an actual file, the file named by the path name name in the file system.
No necesitas crear un objeto File para usar un FileInputStream
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 27/01/2011, 15:19
 
Fecha de Ingreso: enero-2011
Mensajes: 7
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Close BufferedReader

Ok gracias, lo tendré en cuenta.

el File lo uso despues para otras cuestiones, aprovecho entonces para el FileInputStream.

Etiquetas: close
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:48.