<dependency>
<groupId>net.sf.supercsv</groupId>
<artifactId>super-csv-java8</artifactId>
<version>2.4.0</version>
</dependency>
name,age,email,address
John,25,john@gmail.com,123 Main St
Mary,30,mary@gmail.com,456 Elm St
public class Person {
private String name;
private int age;
private String email;
private String address;
// Getters and setters
}
import org.supercsv.io.CsvBeanReader;
import org.supercsv.prefs.CsvPreference;
public class CSVReaderExample {
public static void main(String[] args) throws IOException {
String csvFile = "test.csv";
try (CsvBeanReader csvReader = new CsvBeanReader(new FileReader(csvFile), CsvPreference.STANDARD_PREFERENCE)) {
final String[] header = csvReader.getHeader(true);
final CellProcessor[] processors = new CellProcessor[] { new NotNull(), new ParseInt(), new NotNull(), new NotNull() };
Person person;
while ((person = csvReader.read(Person.class, header, processors)) != null) {
System.out.println(person.getName());
System.out.println(person.getAge());
System.out.println(person.getEmail());
System.out.println(person.getAddress());
}
}
}
}
import org.supercsv.io.CsvBeanWriter;
import org.supercsv.prefs.CsvPreference;
public class CSVWriterExample {
public static void main(String[] args) throws IOException {
String csvFile = "output.csv";
try (CsvBeanWriter csvWriter = new CsvBeanWriter(new FileWriter(csvFile), CsvPreference.STANDARD_PREFERENCE)) {
final String[] header = new String[] { "name", "age", "email", "address" };
final CellProcessor[] processors = new CellProcessor[] { new NotNull(), new FmtNumber("##"), new NotNull(), new NotNull() };
csvWriter.writeHeader(header);
Person person1 = new Person("John", 25, "john@gmail.com", "123 Main St");
Person person2 = new Person("Mary", 30, "mary@gmail.com", "456 Elm St");
csvWriter.write(person1, header, processors);
csvWriter.write(person2, header, processors);
}
}
}