Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Chiusura stream

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305

    Chiusura stream

    Salve vorrei chiedere perchè la chiusura di una stream comporta anche la chiusura dell 'oggetto di cui esso è parte .Ad esempio con i socket . Se prendo lo stream di output e lo chiudo si chiude anche il socket.
    Inoltre vorrei chiedervi se prendo entrambi gli stream , ovvero sia di input che di output, e ne chiudo solo uno ad esempio quello di input, viene chiuso anche l'oggetto relativo allo stream?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    Se prendo lo stream di output e lo chiudo si chiude anche il socket.
    Inoltre vorrei chiedervi se prendo entrambi gli stream , ovvero sia di input che di output, e ne chiudo solo uno ad esempio quello di input, viene chiuso anche l'oggetto relativo allo stream?
    È "by design" .... cioè hanno scelto così. E l'hanno anche documentato, nel javadoc di getInputStream/getOutputStream di Socket:

    Closing the returned InputStream will close the associated socket.
    Closing the returned OutputStream will close the associated socket.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    ma vale anche per i File e relativi decoratori o sbaglio?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    ma vale anche per i File e relativi decoratori o sbaglio?
    In che senso? Sono i socket ad essere "particolari" perché hanno 2 stream associati. Per il resto tutte le classi di I/O hanno un close. E se una classe di I/O è un "decoratore", semplicemente il suo close() invocherà anche il close() sottostante.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.