# Wann muss ich .close aufrufen (Stream,Socket)



## Lastlord (4. September 2009)

Hi,
Muss ich, wenn ich  die Methode Socket.close aufgerufen habe den In- und Outputstream noch extra schließen? 
Dass ich sie nicht mehr verwenden kann, ist klar.
Ich frage wegen Speicherlags die entstehen könnten, wenn man den Stream nicht closed.
In der Doku seht: 
If this socket has an associated channel then the channel is closed as well.
Gild das mit dem closed as well auch für Streams?
Weiß einer Bescheid?


----------



## shocking (4. September 2009)

Hi Lastlord,

soweit ich das weiß müssen Streams in jedem Fall separat geschlossen werden, um leaks zu vermeiden. Ich habe das zumindest so gelernt, dass ein Stream, der geöffnet wurde auch wieder geschlossen werden muss. 
Wir haben mal bei einem Projekt mehrere Teile der Software über RMI Sockets kommunizieren lassen, da traten jedenfalls Probleme auf, als wir diese nicht per Hand geschlossen hatten.

Gruß shocking


----------



## zeja (5. September 2009)

Ich würde das jetzt nicht verallgemeinern wollen. Schau einfach in der Doku nach, da sollte es drin stehen ob close den darunterliegenden Stream mitschließt.

Wenns nicht genau drin steht, kannst du ihn ja vorsichtshalber schließen.


----------



## Thomas Darimont (5. September 2009)

Hallo,

http://www.j2ee.me/javase/6/docs/api/java/net/Socket.html#close()

 Closing this socket will also close the socket's  InputStream and  OutputStream.   

Gruß Tom


----------

