code: private void readToken(String token) throws IOException
      {
          final int len = token.length();
  
          for (int i = 1; i < len; i++)
          {
              int c = input.read();
              if (c == -1)
              {
                  error("EOF reached while reading token: " + token);
              }
              c = Character.toLowerCase((char) c);
              int loTokenChar = token.charAt(i);
  
              if (loTokenChar != c)
              {
                  error("Expected token: " + token);
              }
          }
      }
docs: Return the specified token from the reader.  If it is not found,
  throw an IOException indicating that.  Converting to c to
  (char) c is acceptable because the 'tokens' allowed in a
  JSON input stream (true, false, null) are all ASCII.