private void getLineIfNeeded() throws EOFException, IOException
   {

      if ( line == null )
         {
         if ( r == null )
            {
            throw new IllegalArgumentException("attempt to use a closed CSVReader");
            }
         allFieldsDone = false;
         line = r.readLine();  /* this strips platform specific line ending */
         if ( line == null )   /* null means EOF, yet another inconsistent Java convention. */
            {
            throw new EOFException();
            }
         else
            {
            line += '\n'; /* apply standard line end for parser to find */
            lineCount++;
            }
         }
   }