Package com.opencsv

Class CSVReaderHeaderAware

java.lang.Object
com.opencsv.CSVReader
com.opencsv.CSVReaderHeaderAware
All Implemented Interfaces:
Closeable, AutoCloseable, Iterable<String[]>

public class CSVReaderHeaderAware extends CSVReader
Handy reader when there's insufficient motivation to use the bean binding but the header mapping is still desired.
Since:
4.2
  • Field Details

  • Constructor Details

    • CSVReaderHeaderAware

      public CSVReaderHeaderAware(Reader reader) throws IOException
      Constructor with supplied reader.
      Parameters:
      reader - The reader to an underlying CSV source
      Throws:
      IOException - If there is an error when reading the header
    • CSVReaderHeaderAware

      CSVReaderHeaderAware(Reader reader, int skipLines, ICSVParser parser, boolean keepCR, boolean verifyReader, int multilineLimit, Locale errorLocale, LineValidatorAggregator lineValidatorAggregator, RowValidatorAggregator rowValidatorAggregator, RowProcessor rowProcessor) throws IOException
      Supports non-deprecated constructor from the parent class. Like the CSVReader this constructor is package scope so only the builder can use it.
      Parameters:
      reader - The reader to an underlying CSV source
      skipLines - The number of lines to skip before reading
      parser - The parser to use to parse input
      keepCR - True to keep carriage returns in data read, false otherwise
      verifyReader - True to verify reader before each read, false otherwise
      multilineLimit - Allow the user to define the limit to the number of lines in a multiline record. Less than one means no limit.
      errorLocale - Set the locale for error messages. If null, the default locale is used.
      lineValidatorAggregator - contains all the custom defined line validators.
      rowValidatorAggregator - contains all the custom defined row validators.
      rowProcessor - Custom row processor to run on all columns on a csv record.
      Throws:
      IOException - If bad things happen while initializing the header
  • Method Details

    • readNext

      public String[] readNext(String... headerNames) throws IOException, CsvValidationException
      Retrieves a specific data element from a line based on the value of the header.
      Parameters:
      headerNames - Name of the header element whose data we are trying to find
      Returns:
      The data element whose position matches that of the header whose value is passed in. Will return null when there are no more data elements.
      Throws:
      IOException - An error occured during the read or there is a mismatch in the number of data items in a row and the number of header items
      IllegalArgumentException - If headerName does not exist
      CsvValidationException - If a custom defined validator fails.
    • readMap

      public Map<String,String> readMap() throws IOException, CsvValidationException
      Reads the next line and returns a map of header values and data values.
      Returns:
      A map whose key is the header row of the data file and the values is the data values. Or null if the line is blank.
      Throws:
      IOException - An error occurred during the read or there is a mismatch in the number of data items in a row and the number of header items.
      CsvValidationException - If a custom defined validator fails.
    • initializeHeader

      private void initializeHeader() throws IOException
      Throws:
      IOException