May the FileInputStream.available foolish me?
- by Tom Brito
This FileInputStream.available() javadoc says:
Returns an estimate of the number of
remaining bytes that can be read (or
skipped over) from this input stream
without blocking by the next
invocation of a method for this input
stream. The next invocation might be
the same thread or another thread. A
single read or skip of this many bytes
will not block, but may read or skip
fewer bytes.
In some cases, a non-blocking read (or
skip) may appear to be blocked when it
is merely slow, for example when
reading large files over slow
networks.
I'm not sure if in this check:
if (new FileInputStream(xmlFile).available() == 0)
can I rely that empty files will always return zero?