que estaba esperando el siguiente código para lanzar una excepción cuando Goto escribir datos en la Corriente:Java BufferedWriter, OutputStreamWriter escribir en FileOutputStream cerrado
File file = new File("test.txt");
FileOutputStream fs = new FileOutputStream(file);
OutputStreamWriter ow = new OutputStreamWriter(fs);
BufferedWriter writer = new BufferedWriter(ow);
fs.close();
try {
ow.write(65);
writer.write("test");
} catch (Exception e) {
e.printStackTrace();
}
me doy cuenta que debería cerrar la BufferedWriter, pero en mi entorno actual, es posible que FileOutputStream se cierre antes de que BufferedWriter se cierre. ¿No debería FileOutputStream lanzar una IOException que debería moverse hacia arriba de la cadena hasta que llegue a mi bloque try/catch e imprimir el seguimiento de la pila?
Si intento llamar a fs.write (65), arroja una excepción.
Gracias! No puedo creer que no lo haya intentado, Unit Tests me pone tan concentrado, a veces echo de menos lo obvio. – craineum
¿Por qué no arrojaría una excepción en 'ow.write (65)'? El OutputStreamWriter no está almacenado en el búfer. –
Si lee el javadoc para OutputStreamWriter (la introducción), verá que también está almacenado en el búfer. –