code: @Override
    public long skip (final long nSkip) throws IOException
    {
      ValueEnforcer.isGE0 (nSkip, "SkipValue");
  
      _ensureOpen ();
  
      if (nSkip == 0)
        return 0L;
  
      long nRealSkip = nSkip;
      final int nBufAvail = m_aBuf.length - m_nBufPos;
      if (nBufAvail > 0)
      {
        if (nRealSkip <= nBufAvail)
        {
          m_nBufPos += nRealSkip;
          return nRealSkip;
        }
        m_nBufPos = m_aBuf.length;
        nRealSkip -= nBufAvail;
      }
      return nBufAvail + super.skip (nRealSkip);
    }
docs: Skips characters. This method will block until some characters are
  available, an I/O error occurs, or the end of the stream is reached.
  
  @param nSkip
  The number of characters to skip. Must be &ge; 0.
  @return The number of characters actually skipped
  @exception IllegalArgumentException
  If <code>n</code> is negative.
  @exception IOException
  If an I/O error occurs