FileOutputStream.available() and pipe EOF

Remi Forax forax at
Sat Feb 10 21:27:37 UTC 2018

Hi Basin,
or instead of relying on an undocumented behaviour, you can use any overloads of read(), if it returns -1, it's the ends of the stream.


----- Mail original -----
> De: "Basin Ilya" <basinilya at>
> À: "core-libs-dev" <core-libs-dev at>
> Envoyé: Samedi 10 Février 2018 22:15:18
> Objet: FileOutputStream.available() and pipe EOF

> Hi list.
> My question relates to streams returned by
> java.lang.Process.getInputStream()
> On Linux calling available() after the other side of the pipe was closed
> will throw:
> Stream Closed
> This is very handy, because you can distinguish EOF and a pause in
> transmission.
> On Windows same Oracle JDK version 1.8.0_161 behaves in a traditional
> manner and available() returns 0 in both cases. Will this ever change?

More information about the core-libs-dev mailing list