Returns a temporary reference to the data that is currently buffered.
The returned slice typically has the size
dataAvailableForRead() returns false. Streams that don't have an
internal buffer will always return an empty slice.
Note that any method invocation on the same stream potentially
invalidates the contents of the returned buffer.