Class CsvMapReader

All Implemented Interfaces:
Closeable, AutoCloseable, ICsvMapReader, ICsvReader

public class CsvMapReader extends AbstractCsvReader implements ICsvMapReader
CsvMapReader reads each CSV row into a Map with the column name as the map key, and the column value as the map value.
  • Constructor Details

    • CsvMapReader

      public CsvMapReader(Reader reader, CsvPreference preferences)
      Constructs a new CsvMapReader with the supplied Reader and CSV preferences. Note that the reader will be wrapped in a BufferedReader before accessed.
      Parameters:
      reader - the reader
      preferences - the CSV preferences
      Throws:
      NullPointerException - if reader or preferences are null
    • CsvMapReader

      public CsvMapReader(ITokenizer tokenizer, CsvPreference preferences)
      Constructs a new CsvMapReader with the supplied (custom) Tokenizer and CSV preferences. The tokenizer should be set up with the Reader (CSV input) and CsvPreference beforehand.
      Parameters:
      tokenizer - the tokenizer
      preferences - the CSV preferences
      Throws:
      NullPointerException - if tokenizer or preferences are null
  • Method Details

    • read

      public Map<String,String> read(String... nameMapping) throws IOException
      Reads a row of a CSV file into a Map, using the supplied name mapping to map column values to the appropriate map entries.
      Specified by:
      read in interface ICsvMapReader
      Parameters:
      nameMapping - an array of Strings linking the CSV columns to their corresponding entry in the Map (the array length should match the number of columns). A null entry in the array indicates that the column should be ignored (e.g. not added to the Map).
      Returns:
      a Map of column names to column values (Strings, as no processing is performed), or null if EOF
      Throws:
      IOException - if an I/O error occurred
    • read

      public Map<String,Object> read(String[] nameMapping, CellProcessor[] processors) throws IOException
      Reads a row of a CSV file into a Map, using the supplied name mapping to map column values to the appropriate map entries, and the supplied processors to process the values before adding them to the Map.
      Specified by:
      read in interface ICsvMapReader
      Parameters:
      nameMapping - an array of Strings linking the CSV columns to their corresponding entry in the Map (the array length should match the number of columns). A null entry in the array indicates that the column should be ignored (e.g. not added to the Map).
      processors - an array of CellProcessors used to further process data before it is added to the Map (each element in the processors array corresponds with a CSV column - the number of processors should match the number of columns). A null entry indicates no further processing is required (the unprocessed String value will added to the Map).
      Returns:
      a Map of column names to column values, or null if EOF
      Throws:
      IOException - if an I/O error occurred