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
Author:
Andre Rosot
  • 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
  • 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.