Returns the maximum number of bytes that are known to remain in this stream until the
end is reached. After leastSize() bytes have been read, the stream will either have
reached EOS and empty() returns true, or leastSize() returns again a number > 0.