Java BufferedWriter, OutputStreamWriter kann in geschlossenen FileOutputStream schreiben

8

Ich habe erwartet, dass der folgende Code eine Ausnahme auslöst, wenn ich Daten in den Stream schreiben möchte:

%Vor%

Ich merke, dass ich den BufferedWriter schließen sollte, aber in meiner aktuellen Umgebung kann es möglich sein, dass der FileOutputStream geschlossen wird, bevor der BufferedWriter geschlossen wird. Sollte nicht der FileOutputStream eine IOException werfen, die sich in der Kette nach oben bewegen sollte, bis sie auf meinen try / catch-Block trifft und den Stack-Trace ausgibt?

Wenn ich versuche, fs.write (65) aufzurufen, wird eine Ausnahme ausgelöst.

    
craineum 16.03.2010, 19:47
quelle

1 Antwort

9

Versuchen Sie nach dem Schreibaufruf zu spülen. Der gepufferte Stream hat möglicherweise noch nicht versucht, den Inhalt in den zugrunde liegenden Stream zu schreiben, und hat daher nicht erkannt, dass der zugrunde liegende Stream geschlossen wurde.

BEARBEITEN:

Habe es gerade ausprobiert. Mit dem Code:

%Vor%

Sie erhalten die folgende Ausnahme:

%Vor%     
Alexander Torstling 16.03.2010, 19:55
quelle