code: protected int readBlock() throws IOException {
          blockSize = in.read();
          if (blockSize <= 0) {
              return blockSize = 0;
          }
          for (int k = 0; k < blockSize; ++k) {
              int v = in.read();
              if (v < 0) {
                  return blockSize = k;
              }
              block[k] = (byte)v;
          }
          return blockSize;
      }
docs: Reads next variable length block from input.
  
  @return number of bytes stored in "buffer"