This input stream delays opening the file until the first byte is read, and
closes and discards the underlying stream as soon as the end of input has
been reached or when the stream is explicitly closed.