Umgehen mit übergebenen Streams

fsicher

Bekanntes Mitglied
Es wirde mich interessieren, wie man mit Streams, die als Referenz übergeben werden, umgehen sollte.

Beispiel:

Java:
public void machEtwas(OutputStream os){

    // ...

    // generiere diverse Daten und schreiben sie in den Stream ...

    // Verarbeitung fertig: Was tun? OutputStream schliessen oder nicht?

    // ...

}
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.
 

madboy

Top Contributor
Meiner Meinung nach ist derjenige für das korrekte Schließen eines Streams verantwortlich, der ihn auch geöffnet hat. Ansonsten hat man genau die Probleme, die du beschreibst :)
 
G

Gast2

Gast
Genauso seh ich das auch. Derjenige der eine Ressource öffnet ist dann auch dafür zuständig dass diese wieder geschlossen wird.
 

Jango

Gesperrter Benutzer
Ein geöffneter Stream muss immer geschlossen werden. Das passiert nicht automatisch, oder durch Zufall.
Das Programm muss dieses tun. Wenn der 'Aufrufer' es nicht macht, muss das Programm selbst reagieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Kann ich die Nullpointer Exception umgehen Allgemeine Java-Themen 12
K Factory Pattern: Mit Generics umgehen Allgemeine Java-Themen 6
F SecurityException umgehen Allgemeine Java-Themen 3
J BufferedReader OutOfMemory umgehen? Allgemeine Java-Themen 10
P Rhino - wie mit NativeJavaObject umgehen? Allgemeine Java-Themen 2
M Wie umgehen mit Lizenzen Allgemeine Java-Themen 11
M Umgehen der fehlenden friends Deklaration Allgemeine Java-Themen 2
N xml fatal error umgehen Allgemeine Java-Themen 14
M Geschützte Systemdateien sinnvoll umgehen bei listFiles() Allgemeine Java-Themen 7
F eclipse - Warnung für ganze Klasse umgehen Allgemeine Java-Themen 2
P Optimierung (&& ||) deaktivieren / umgehen? Allgemeine Java-Themen 9
Z mit java htaccess - abfrage bestätigen/umgehen Allgemeine Java-Themen 2
M Generics - besser programmieren, Warnung umgehen Allgemeine Java-Themen 4
M Thread.stop() umgehen ? Allgemeine Java-Themen 2
D Casting umgehen Allgemeine Java-Themen 2
Luma Trick zum Umgehen einer Performancefalle? Allgemeine Java-Themen 6
S static umgehen Allgemeine Java-Themen 5
H Aufruf eines Web Service anhand übergebenen Parameter Allgemeine Java-Themen 2
S Einen übergebenen String kopieren Allgemeine Java-Themen 3
O Variablen Originalname einer übergebenen Variable prüfen Allgemeine Java-Themen 9
K Objekt einer konkreten Implementierung eines Interfaces durch übergebenen String Allgemeine Java-Themen 2
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
Z Mit Java 8+ Streams Zeilen nummern zu Zeilen hinzufügen Allgemeine Java-Themen 17
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
Monokuma Lesbarkeit von Streams Allgemeine Java-Themen 6
Monokuma Foreach Schleifen in Streams umändern Allgemeine Java-Themen 23
J Streams Allgemeine Java-Themen 6
LimDul Streams und Exception Allgemeine Java-Themen 8
LimDul Mittels Streams aus Strings A B C den String A, B und C machen Allgemeine Java-Themen 12
K Lesbarkeit von Streams Allgemeine Java-Themen 5
X Ermittlung eines doppelte Paars mit Streams Allgemeine Java-Themen 50
mihe7 Lesbarkeit von Streams Allgemeine Java-Themen 5
N Streams wann .filtern? Allgemeine Java-Themen 2
A Lambda und Streams verstehen Allgemeine Java-Themen 4
J IO Streams Allgemeine Java-Themen 13
M Wie funktionieren parallele Java Streams? Allgemeine Java-Themen 1
R Collections BiPredicate in Java 8 Streams Allgemeine Java-Themen 7
hdi Überwachen des err-Streams? Allgemeine Java-Themen 8
N read streams umleiten Allgemeine Java-Themen 2
DEvent GZIP Streams und gzip Allgemeine Java-Themen 2
S Streams zusammenfügen Allgemeine Java-Themen 4
J Objekt in Datei speichern mittels Streams Allgemeine Java-Themen 6
F Double mit Streams aus Datei einlesen Allgemeine Java-Themen 3
C in Streams Allgemeine Java-Themen 4
M Sind Streams asynchron? Allgemeine Java-Themen 2
Saxony DOS Konsole und deren Streams Allgemeine Java-Themen 5
B Probleme mit Streams Allgemeine Java-Themen 5
T Zwei Streams verbinden Allgemeine Java-Themen 3
L Die Wahl des richtigen Streams? Allgemeine Java-Themen 3
G Video Streams mit Servlets Allgemeine Java-Themen 3
P Streams per Mail mit JavaMailAPI versenden Allgemeine Java-Themen 3
A Streams: merkwürdiges Verhalten Allgemeine Java-Themen 7
A Streams - merkwürdiges Verhalten Allgemeine Java-Themen 2
thE_29 Problem mit Streams Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben