<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-csv</artifactId>
<version>2.12.5</version>
</dependency>
@JsonPropertyOrder({ "id", "name", "age" })
public class Person {
@CsvBindByName(column = "ID")
private int id;
private String name;
private int age;
}
CsvMapper mapper = new CsvMapper();
mapper.enable(CsvParser.Feature.WRAP_AS_ARRAY);
mapper.enable(CsvGenerator.Feature.ALWAYS_QUOTE_STRINGS);
mapper.enable(CsvGenerator.Feature.IGNORE_UNKNOWN);
CsvSchema schema = CsvSchema.builder().setUseHeader(true).build();
ObjectReader reader = mapper.readerFor(Person.class).with(schema);
MappingIterator<Person> it = reader.readValues(csvFile);
while (it.hasNext()) {
Person person = it.next();
}
ObjectWriter writer = mapper.writer(schema);
writer.writeValue(csvFile, personList);