docs: @Override
  	public InstanceExample nextInstance() {
  		InstanceExample prevInstance = this.lastInstanceRead;
  		if (prevInstance != null) {
  			this.numInstancesRead++;
  		}
  		try {
  			String line;
  			do {
  				line = this.fileReader.readLine();
  				if (line == null) {
  					break;
  				}
  				line = line.trim();
  			} while (line.isEmpty() || line.charAt(0) == '%'
  					|| line.charAt(0) == '@');
  
  			if (line != null) {
  				StringTokenizer token = new StringTokenizer(line,
  						splitCharOption.getValue());
  
  				double[] value = new double[this.numAttributes];
  				int i;
  				for (i = 0; i < this.numTokens && token.hasMoreTokens(); i++) {
  					value[i] = Double.valueOf(token.nextToken());
  				}
  				if (i < this.numTokens || token.hasMoreTokens()) {
  					throw new RuntimeException(
  							"Next Instance has an wrong cardinality!");
  				}
  				this.lastInstanceRead = new InstanceExample(new DenseInstance(1, value));
  				this.lastInstanceRead.getData().setDataset(this.dataset);
  				this.hitEndOfFile = false;
  			} else {
  				this.lastInstanceRead = null;
  				this.hitEndOfFile = true;
  			}
  		} catch (IOException ioe) {
  			throw new RuntimeException("Read next Instance failed.", ioe);
  		}
  		return prevInstance;
  	}