code: private int readCharBlockMarker() throws IOException {
          if( cache2 != null ) {
              int ch = cache2.read();
              if( ch != -1 ) {
                  return ch;
              }
              cache2 = null;
          }
          return reader.read();
      }
docs: Read the next character in the method nextBlockMarker()
  
  @return next char
  @throws IOException
  if an I/O error occur