readFully
Reads exactly buf.size bytes starting at pos into the buffer.
This method repeatedly invokes readAtMost until the buffer is fully filled.
Throws
If the end of data is reached before reading all bytes
If an I/O error occurs
Reads exactly len bytes starting at pos into buf, beginning at offset off.
This method attempts to read until the requested region of the buffer is fully filled.
Throws
If the end of data is reached before reading all bytes
If an I/O error occurs