code: protected int readByte(InputStream in, CRC32 crc, byte [] buffer,
                  int offset, int length)
              throws IOException {
          for (int i = offset; i < length; i++) {
              buffer[offset + i] = (byte)readByte(in, crc);   
          }
          return length;
      }
docs: Read a byte.
  
  We do not expect to get a -1 reading.  If we do, we throw exception.
  Update the crc as we go.
  
  @param in InputStream to read.
  @param crc CRC to update.
  @param buffer Buffer to read into.
  @param offset Offset to start filling buffer at.
  @param length How much to read.
  @return Bytes read.
  
  @throws IOException