public long skip()

in src/main/java/org/apache/commons/crypto/stream/CtrCryptoInputStream.java [633:660]


    public long skip(long n) throws IOException {
        Utils.checkArgument(n >= 0, "Negative skip length.");
        checkStream();

        if (n == 0) {
            return 0;
        }
        if (n <= outBuffer.remaining()) {
            final int pos = outBuffer.position() + (int) n;
            outBuffer.position(pos);
            return n;
        }
        /*
         * Subtract outBuffer.remaining() to see how many bytes we need to
         * skip in the underlying stream. Add outBuffer.remaining() to the
         * actual number of skipped bytes in the underlying stream to get
         * the number of skipped bytes from the user's point of view.
         */
        n -= outBuffer.remaining();
        long skipped = input.skip(n);
        if (skipped < 0) {
            skipped = 0;
        }
        final long pos = streamOffset + skipped;
        skipped += outBuffer.remaining();
        resetStreamOffset(pos);
        return skipped;
    }