Protected virtual method that partially fills the read buffer with bytes from the underlying medium.
This method should be overridden by derived stream classes that support buffered reads.