@Override public void seek(long pos) throws IOException { long diff = pos - fp; fp = pos; if (diff < 0) { resetStream(); diff = fp; } int skipped = stream.skipBytes((int) diff); while (skipped < diff) { int n = stream.skipBytes((int) (diff - skipped)); if (n == 0) break; skipped += n; } }
@Override public void seek(long pos) throws IOException { LOGGER.trace("{}", pos); long diff = pos - fp; fp = pos; if (diff < 0) { // resetStream sets the fp to 0 resetStream(); diff = pos; fp = pos; } int skipped = stream.skipBytes((int) diff); while (skipped < diff) { int n = stream.skipBytes((int) (diff - skipped)); if (n == 0) break; skipped += n; } markManager(); }