public void skipAbs(long posFromHead) {
        if (posFromHead >= 0) {
            int index = -1;
            boolean found = false;
            for (LZDataBuffer buffer : buffers) {
                index++;
                if (buffer.currentBufferPos <= posFromHead && buffer.currentBufferPos + buffer.totalLength > posFromHead) {
                    buffer.currentReadPos = (int) posFromHead - buffer.currentBufferPos;
                    found = true;
                    break;
                }
            }
            if (found && index != -1) {
                int size = buffers.size();
                for (int i = 0; i < index; i++) {
                    LZDataBuffer buffer = buffers.get(i);
                    buffer.currentReadPos = buffer.totalLength;
                }
                for (int i = index + 1; i < size; i++) {
                    LZDataBuffer buffer = buffers.get(i);
                    buffer.currentReadPos = 0;
                }
            }
        }
    }