'Read n bytes.
Args:
n, int, the number of bytes to read.
Returns:
A string of length \'n\', or less if EOF is reached.'

def read(self, n=(-1)):

    cur = self._stream.tell()
    end = (self._begin + self._chunksize)
    if ((n == (-1)) or ((cur + n) > end)):
        n = (end - cur)
    return self._stream.read(n)
