code: @Override
    public int read () throws IOException
    {
      _ensureOpen ();
      while (true)
      {
        if (m_nNextCharIndex >= m_nChars)
        {
          _fill ();
          if (m_nNextCharIndex >= m_nChars)
            return -1;
        }
        if (m_bSkipLF)
        {
          m_bSkipLF = false;
          if (m_aBuf[m_nNextCharIndex] == '\n')
          {
            m_nNextCharIndex++;
            continue;
          }
        }
        return m_aBuf[m_nNextCharIndex++];
      }
    }
docs: Reads a single character.
  
  @return The character read, as an integer in the range 0 to 65535 (
  <tt>0x00-0xffff</tt>), or -1 if the end of the stream has been
  reached
  @exception IOException
  If an I/O error occurs