<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-csv</artifactId>
<version>2.12.3</version>
</dependency>
name,age,email
import com.fasterxml.jackson.annotation.JsonProperty;
public class Person {
@JsonProperty("name")
private String name;
@JsonProperty("age")
private int age;
@JsonProperty("email")
private String email;
}
import com.fasterxml.jackson.databind.MappingIterator;
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class CsvReader {
public static void main(String[] args) {
try {
CsvMapper mapper = new CsvMapper();
CsvSchema schema = mapper.schemaFor(Person.class).withHeader().withColumnReordering(true);
File file = new File("data.csv");
MappingIterator<Person> it = mapper.readerFor(Person.class).with(schema).readValues(file);
List<Person> persons = it.readAll();
for (Person person : persons) {
System.out.println(person.getName() + ", " + person.getAge() + ", " + person.getEmail());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import com.fasterxml.jackson.databind.MappingIterator;
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class CsvWriter {
public static void main(String[] args) {
try {
CsvMapper mapper = new CsvMapper();
CsvSchema schema = mapper.schemaFor(Person.class).withHeader().withColumnReordering(true);
File file = new File("persons.csv");
List<Person> persons = new ArrayList<>();
mapper.writer(schema).writeValue(file, persons);
} catch (IOException e) {
e.printStackTrace();
}
}
}