Reads a sequence of bytes from the current stream.
The total number of bytes read into the buffer. This can be less than the
number of bytes requested if that many bytes are not currently available,
or zero (0) if the end of the stream has been reached.