//First create a configuration object - there are many options //available and the tutorial has a lot of examples CsvParserSettings settings = new CsvParserSettings(); settings.setHeaderExtractionEnabled(true); CsvParser parser = new CsvParser(settings); parser.beginParsing(new File("/path/to/your.csv")); // you can also apply some transformations: // NULL year should become 0000 parser.getRecordMetadata().setDefaultValueOfColumns("0000", "Year"); // decimal separator in prices will be replaced by comma parser.getRecordMetadata().convertFields(Conversions.replace("\\.00", ",00")).set("Price"); Record record; while ((record = parser.parseNextRecord()) != null) { Map<String, String> map = record.toFieldMap(/*you can pass a list of column names of interest here*/); //for performance, you can also reuse the map and call record.fillFieldMap(map); }