What are the bad things that can happen when I don't close the stream?
Does the close operation automatically flush?
Are all the streams closed after the program exits?
Thanks in advance.
Bad things that can happen when you don't close your streams:
Yes, close operation always flushes the stream.
All file handles that the OS is aware of are closed. This means effectively that FileOutputStream
, FileInputStream
and the input/output of a Socket
will be closed. But if you wrap a FileOutputStream
in a BufferedOutputStream
then that BufferedOutputStream
will not be known to the OS and won't be closed/flushed on shutdown. So data written to the BufferedOutputStream
but not yet flushed to the FileOutputStream
can be lost.
1) You tie up system resources unnecessarily (e.g. file descriptors). Possibly to the extent of running out of them.
2) Yes (although you should check the documentation of the particular stream you're interested in to be sure).
3) Yes
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With