docs: public void skip(int skipAmount) throws IOException {
  		if (this.recordCount == -1) {
  			throw new MustCallReadHeaderFunctionException();
  		}
  		if ((this.readingPosition + skipAmount) >= this.recordCount) {
  			throw new EOFException();
  		}
  		if (skipAmount > 0) {
  			this.readingPosition += skipAmount;
  			//this.stream.reset();
  			//this.stream.skipBytes(this.recordSize * this.readingPosition);
  			final long skippedAmount = this.stream.skipBytes(this.recordSize * skipAmount);
  			// use skipBytes because it force to skip the specified amount, instead of skip()
  			assert skippedAmount == this.recordSize * skipAmount;
  		}
  	}