private void _fill () throws IOException
  {
    int nDstOfs = 0;
    if (m_nMarkedChar > UNMARKED)
    {
      // Marked
      final int nDelta = m_nNextCharIndex - m_nMarkedChar;
      if (nDelta >= m_nReadAheadLimit)
      {
        // Gone past read-ahead limit: Invalidate mark
        m_nMarkedChar = INVALIDATED;
        m_nReadAheadLimit = 0;
      }
      else
      {
        if (m_nReadAheadLimit <= m_aBuf.length)
        {
          // Shuffle in the current buffer
          System.arraycopy (m_aBuf, m_nMarkedChar, m_aBuf, 0, nDelta);
          m_nMarkedChar = 0;
          nDstOfs = nDelta;
        }
        else
        {
          // Reallocate buffer to accommodate read-ahead limit
          final char [] aNewBuf = new char [m_nReadAheadLimit];
          System.arraycopy (m_aBuf, m_nMarkedChar, aNewBuf, 0, nDelta);
          m_aBuf = aNewBuf;
          m_nMarkedChar = 0;
          nDstOfs = nDelta;
        }
        m_nNextCharIndex = nDelta;
        m_nChars = nDelta;
      }
    }

    int nBytesRead;
    do
    {
      nBytesRead = m_aReader.read (m_aBuf, nDstOfs, m_aBuf.length - nDstOfs);
    } while (nBytesRead == 0);
    if (nBytesRead > 0)
    {
      m_nChars = nDstOfs + nBytesRead;
      m_nNextCharIndex = nDstOfs;
    }
  }
private void _fill ( ) throws IOException { int nDstOfs = 0 ; if ( m_nMarkedChar > UNMARKED ) { final int nDelta = m_nNextCharIndex - m_nMarkedChar ; if ( nDelta >= m_nReadAheadLimit ) { m_nMarkedChar = INVALIDATED ; m_nReadAheadLimit = 0 ; } else { if ( m_nReadAheadLimit <= m_aBuf . length ) { System . arraycopy ( m_aBuf , m_nMarkedChar , m_aBuf , 0 , nDelta ) ; m_nMarkedChar = 0 ; nDstOfs = nDelta ; } else { final char [ ] aNewBuf = new char [ m_nReadAheadLimit ] ; System . arraycopy ( m_aBuf , m_nMarkedChar , aNewBuf , 0 , nDelta ) ; m_aBuf = aNewBuf ; m_nMarkedChar = 0 ; nDstOfs = nDelta ; } m_nNextCharIndex = nDelta ; m_nChars = nDelta ; } } int nBytesRead ; do { nBytesRead = m_aReader . read ( m_aBuf , nDstOfs , m_aBuf . length - nDstOfs ) ; } while ( nBytesRead == 0 ) ; if ( nBytesRead > 0 ) { m_nChars = nDstOfs + nBytesRead ; m_nNextCharIndex = nDstOfs ; } }
Fills the input buffer, taking the mark into account if it is valid.

@throws IOException
In case reading fails