code: int[] collect(int n) throws
        IOException
    {
      int[] buf = new int[n];
      boolean seenEOF = false;
      for (int i = 0; i < buf.length; i++)
      {
        if (seenEOF)
        {
          buf[i] = -1;
        }
        else
        {
          buf[i] = next();
          if (curChar == -1)
          {
            seenEOF = true;
          }
        }
      }
      return buf;
    }
docs: Reads forward and returns the the next n characters in the stream. Escapes
  are returned verbatim. At return, the reader is at positioned such that
  next() will return n+1 or EOF (-1).
  
  @param n the number of characters to read
  @return An array with guaranteed length n, with -1 being the value for
  all elements at and after EOF.
  @throws IOException