Very good parsing library.
Official Website
Univocity Parsers – Maven Repository
public class ExampleCsvToPojoParser {
private final Logger logger = LoggerFactory.getLogger(CsvToPojoParser.class);
public <T> List<T> parseFileToPojo(Class<T> clazz, String fileName) {
BeanListProcessor<T> rowProcessor = new BeanListProcessor<T>(clazz);
CsvParserSettings parserSettings = new CsvParserSettings();
parserSettings.setRowProcessor(rowProcessor);
parserSettings.setHeaderExtractionEnabled(true);
parserSettings.setLineSeparatorDetectionEnabled(true);
parserSettings.setSkipEmptyLines(true);
CsvParser parser = new CsvParser(parserSettings);
try (InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream(fileName)) {
parser.parse(resourceAsStream);
} catch (IOException e) {
logger.error("Cannot read file " + fileName, e );
}
return rowProcessor.getBeans();
}
}
Then you can put there class like this (which will match the file):