code: @Override
    public long skip (final long nBytesToSkip) throws IOException
    {
      _getBufIfOpen (); // Check for closed stream
      if (nBytesToSkip <= 0)
        return 0;
  
      long nAvail = (long) m_nCount - m_nPos;
      if (nAvail <= 0)
      {
        // If no mark position set then don't keep in buffer
        if (m_nMarkPos < 0)
          return _getInIfOpen ().skip (nBytesToSkip);
  
        // Fill in buffer to save bytes for reset
        _fill ();
        nAvail = (long) m_nCount - m_nPos;
        if (nAvail <= 0)
          return 0;
      }
  
      final long nSkipped = nAvail < nBytesToSkip ? nAvail : nBytesToSkip;
      m_nPos += nSkipped;
      return nSkipped;
    }
docs: See the general contract of the <code>skip</code> method of
  <code>InputStream</code>.
  
  @exception IOException
  if the stream does not support seek, or if this input stream has
  been closed by invoking its {@link #close()} method, or an I/O
  error occurs.