Open Source Repository

Home /csv/supercsv-1.52 | Repository Home


org/supercsv/io/CsvListReader.java
package org.supercsv.io;

import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;

import org.supercsv.cellprocessor.ift.CellProcessor;
import org.supercsv.prefs.CsvPreference;
import org.supercsv.util.Util;

/**
 * A simple reader, reading a line from a CSV file into a <code>List</code>. This low-level approach to CSV-reading
 * should be considered a last resort when the more elaborate schemes do not fit your purpose.
 
 @author Kasper B. Graversen
 */
public class CsvListReader extends AbstractCsvReader implements ICsvListReader {
/**
 * Create a csv reader with a specific preference. Note that the <tt>reader</tt> provided in the argument will be
 * wrapped in a <tt>BufferedReader</tt> before accessed.
 */
public CsvListReader(final Reader reader, final CsvPreference preferences) {
  setPreferences(preferences);
  setInput(reader);
}

/**
 * {@inheritDoc}
 */
public List<String> read() throws IOException {
  iftokenizer.readStringList(super.line) ) { return super.line; }
  return null;
}

/**
 * {@inheritDoc}
 */
public List<String> read(final CellProcessor... processorsthrows IOException {
  iftokenizer.readStringList(super.line) ) {
    final List<? super Object> tmpLine = new ArrayList<Object>();
    Util.processStringList(tmpLine, super.line, processors, getLineNumber());
    final List<String> result = new ArrayList<String>();
    forfinal Object i : tmpLine ) {
      result.add(i.toString());
    }
    return result;
    
  }
  return null;
}
}