<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-csv</artifactId>
<version>2.12.0</version>
</dependency>
public class User {
private int id;
private String name;
}
CsvMapper csvMapper = new CsvMapper();
csvMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
CsvSchema schema = CsvSchema.builder()
.addColumn("id")
.addColumn("name")
.build();
MappingIterator<User> mappingIterator = csvMapper.readerFor(User.class)
.with(schema)
.readValues(new File("data.csv"));
List<User> userList = mappingIterator.readAll();
List<User> filteredList = userList.stream()
.filter(user -> user.getId() > 100)
.collect(Collectors.toList());
CsvMapper csvMapper = new CsvMapper();
CsvSchema schema = CsvSchema.emptySchema().withHeader();
ObjectReader objectReader = csvMapper.readerFor(User.class).with(schema);
ObjectWriter objectWriter = csvMapper.writerFor(User.class).with(schema);
List<User> userList = objectReader.readValue(new File("input.csv"));
for (User user : userList) {
}
objectWriter.writeValues(new File("output.csv")).writeAll(userList);