code: public boolean more() throws JSONException {
          if(this.usePrevious) {
              return true;
          }
          try {
              this.reader.mark(1);
          } catch (IOException e) {
              throw new JSONException("Unable to preserve stream position", e);
          }
          try {
              // -1 is EOF, but next() can not consume the null character '\0'
              if(this.reader.read() <= 0) {
                  this.eof = true;
                  return false;
              }
              this.reader.reset();
          } catch (IOException e) {
              throw new JSONException("Unable to read the next character from the stream", e);
          }
          return true;
      }
docs: Determine if the source string still contains characters that next()
  can consume.
  @return true if not yet at the end of the source.
  @throws JSONException thrown if there is an error stepping forward
  or backward while checking for more data.