docs: @Override
  	public void restart() {
  		try {
  			if (fileReader != null) {
  				fileReader.close();
  			}
  			InputStream fileStream = new FileInputStream(
  					this.csvFileOption.getFile());
  			this.fileProgressMonitor = new InputStreamProgressMonitor(
  					fileStream);
  			this.fileReader = new BufferedReader(new InputStreamReader(
  					fileProgressMonitor));
  
  			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());
  				this.numTokens = token.countTokens();
  				this.numAttributes = this.numTokens
  						- (classIndexOption.isSet() ? 1 : 0) + 1;
  
  				ArrayList<Attribute> attributes = new ArrayList<Attribute>(
  						this.numAttributes);
  				for (int i = 1; i < this.numAttributes; i++) {
  					attributes.add(new Attribute("Dim " + i));
  				}
  				ArrayList<String> classLabels = new ArrayList<String>();
  				classLabels.add("0");
  		        attributes.add(new Attribute("class", classLabels));
  				this.dataset = new Instances(csvFileOption.getFile().getName(),
  						attributes, 0);
  				this.dataset.setClassIndex(this.numAttributes - 1);
  				numAttsOption = new IntOption("numAtts", 'a', "",
  						this.numAttributes);
  
  				double[] value = new double[this.numAttributes];
  				for (int i = 0; i < this.numTokens && token.hasMoreTokens(); i++) {
  					value[i] = Double.valueOf(token.nextToken());
  				}
  				this.lastInstanceRead = new InstanceExample(new DenseInstance(1, value));
  				this.lastInstanceRead.getData().setDataset(this.dataset);
  				this.numInstancesRead = 0;
  				this.hitEndOfFile = false;
  			} else {
  				this.lastInstanceRead = null;
  				this.numInstancesRead = 0;
  				this.hitEndOfFile = true;
  			}
  		} catch (IOException ioe) {
  			throw new RuntimeException("SimpleCSVStream restart failed.", ioe);
  		}
  	}