code: private char readNext() throws IOException {
          if (cachedNext != null) {
              char next = cachedNext.charValue();
              cachedNext = null;
              return next;
          }
          int next = input.read();
          if (next == -1) {
              throw new IllegalArgumentException("Invalid JSON data: End of file");
          }
          return (char) next;
      }
docs: -----------------------------------------------------------------------