code: private byte readByte()
              throws IOException
      {
          if (buffer.size() > position) {
              byte b = buffer.getByte(position);
              position++;
              return b;
          }
          else {
              nextBuffer();
              if (buffer.size() > 0) {
                  byte b = buffer.getByte(0);
                  position = 1;
                  return b;
              }
              return readByte();
          }
      }
docs: Read a byte value at the cursor and proceed the cursor.
  
  @return
  @throws IOException