public void skipBytes(final long numBytes) throws IOException {if (numBytes < 0) {throw new IllegalArgumentException("numBytes must be >= 0, got " + numBytes);}if (skipBuffer == null) {skipBuffer = new byte[SKIP_BUFFER_SIZE];}assert skipBuffer.length == SKIP_BUFFER_SIZE;for (long skipped = 0; skipped < numBytes; ) {final int step = (int) Math.min(SKIP_BUFFER_SIZE, numBytes - skipped);readBytes(skipBuffer, 0, step, false);skipped += step;}}

public virtual void SkipBytes(long numBytes){if (numBytes < 0){throw new ArgumentException("numBytes must be >= 0, got " + numBytes);}if (skipBuffer == null){skipBuffer = new byte[SKIP_BUFFER_SIZE];}Debug.Assert(skipBuffer.Length == SKIP_BUFFER_SIZE);for (long skipped = 0; skipped < numBytes; ){var step = (int)Math.Min(SKIP_BUFFER_SIZE, numBytes - skipped);ReadBytes(skipBuffer, 0, step, false);skipped += step;}}
