Class CsvMapWriter

All Implemented Interfaces:
Closeable, Flushable, AutoCloseable, ICsvMapWriter, ICsvWriter

public class CsvMapWriter extends AbstractCsvWriter implements ICsvMapWriter
CsvMapWriter writes Maps of Objects to a CSV file.
  • Field Details

    • processedColumns

      private final List<Object> processedColumns
  • Constructor Details

    • CsvMapWriter

      public CsvMapWriter(Writer writer, CsvPreference preference)
      Constructs a new CsvMapWriter with the supplied Writer and CSV preferences. Note that the writer will be wrapped in a BufferedWriter before accessed.
      Parameters:
      writer - the writer
      preference - the CSV preferences
      Throws:
      NullPointerException - if writer or preference are null
      Since:
      1.0
    • CsvMapWriter

      public CsvMapWriter(Writer writer, CsvPreference preference, boolean bufferizeWriter)
      Constructs a new CsvMapWriter with the supplied Writer, CSV preferences and option to bufferize the writer.
      Parameters:
      writer - the writer
      preference - the CSV preferences
      bufferizeWriter - if true, the writer will be wrapped in a BufferedWriter before accessed.
      Throws:
      NullPointerException - if writer or preference are null
      Since:
      1.0
  • Method Details

    • write

      public void write(Map<String,?> values, String... nameMapping) throws IOException
      Writes the values of the Map as columns of a CSV file, using the supplied name mapping to map values to the appropriate columns. toString() will be called on each element prior to writing.
      Specified by:
      write in interface ICsvMapWriter
      Parameters:
      values - the Map containing the values to write
      nameMapping - an array of Strings linking the Map keys to their corresponding CSV columns (the array length should match the number of columns). A null entry in the array indicates that the column should be ignored (the column will be empty).
      Throws:
      IOException - if an I/O error occurred
    • write

      public void write(Map<String,?> values, String[] nameMapping, CellProcessor[] processors) throws IOException
      Writes the values of the Map as columns of a CSV file, using the supplied name mapping to map values to the appropriate columns. toString() will be called on each element prior to writing.
      Specified by:
      write in interface ICsvMapWriter
      Parameters:
      values - the Map containing the values to write
      nameMapping - an array of Strings linking the Map keys to their corresponding CSV columns (the array length should match the number of columns). A null entry in the array indicates that the column should be ignored (the column will be empty).
      processors - an array of CellProcessors used to further process data before it is written (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 value returned by toString() will be written as the column value).
      Throws:
      IOException - if an I/O error occurred