Es wirde mich interessieren, wie man mit Streams, die als Referenz übergeben werden, umgehen sollte.
Beispiel:
Wenn ich den Stream schliesse, kann es sein, dass der Aufrufer auf diesen Stream evtl. noch zugreiffen möchte, um weitere Daten in den Stream zu schreiben. Und, dass dürfte schief gehen. Wenn ich es aber nicht schliesse und davon ausgehe, dass dies der Aufrufer macht, habe ich ein Stream-Objekt, das eventuell nicht geschlossen wird.
Meines Wissens kann ich nicht prüfen, ob der Stream offen oder geschlossen ist (Irrtum vorbehalten). Wenn mir das Stream-Objekt als anonyme Instanz übergeben wird, kein Problem: ich schliesse es, da der Aufrufer auf ihn nicht mehr zugreifen kann. Aber, wenn er die Referenz doch hat, ...
Wie macht man das am besten? Oder, habe ich was wichtiges völlig übersehen?
Danke.
Beispiel:
Java:
public void machEtwas(OutputStream os){
// ...
// generiere diverse Daten und schreiben sie in den Stream ...
// Verarbeitung fertig: Was tun? OutputStream schliessen oder nicht?
// ...
}
Meines Wissens kann ich nicht prüfen, ob der Stream offen oder geschlossen ist (Irrtum vorbehalten). Wenn mir das Stream-Objekt als anonyme Instanz übergeben wird, kein Problem: ich schliesse es, da der Aufrufer auf ihn nicht mehr zugreifen kann. Aber, wenn er die Referenz doch hat, ...
Wie macht man das am besten? Oder, habe ich was wichtiges völlig übersehen?
Danke.