read
Read data into the buffer. Note that this will only ever read from one of the sources. As such the buffer may not be filled up to len size, even in the middle of the stream. Make sure to use a negative return value to determine the end of the reader.