code: public long readLong()
          throws IOException
      {
          int tag = is.read();
  
          if (tag != 'L')
              throw protocolException("expected long");
  
          long b64 = is.read();
          long b56 = is.read();
          long b48 = is.read();
          long b40 = is.read();
          long b32 = is.read();
          long b24 = is.read();
          long b16 = is.read();
          long b8 = is.read();
  
          return ((b64 << 56) +
              (b56 << 48) +
              (b48 << 40) +
              (b40 << 32) +
              (b32 << 24) +
              (b24 << 16) +
              (b16 << 8) + b8);
      }
docs: Reads a long
  
  <pre>
  L b64 b56 b48 b40 b32 b24 b16 b8
  </pre>