1. OpenCSV
import au.com.bytecode.opencsv.CSVReader;
try (CSVReader reader = new CSVReader(new FileReader("data.csv"))) {
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
for (String value : nextLine) {
System.out.println(value);
}
}
} catch (IOException e) {
e.printStackTrace();
}
import au.com.bytecode.opencsv.CSVWriter;
try (CSVWriter writer = new CSVWriter(new FileWriter("data.csv"))) {
String[] header = {"Name", "Age", "Email"};
writer.writeNext(header);
String[] data1 = {"John", "25", "john@example.com"};
String[] data2 = {"Alice", "30", "alice@example.com"};
writer.writeNext(data1);
writer.writeNext(data2);
//...
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
2. Apache Commons CSV
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
try (Reader reader = Files.newBufferedReader(Paths.get("data.csv"));
CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT)) {
for (CSVRecord csvRecord : csvParser) {
String name = csvRecord.get(0);
int age = Integer.parseInt(csvRecord.get(1));
String email = csvRecord.get(2);
//...
}
} catch (IOException e) {
e.printStackTrace();
}
import org.apache.commons.csv.CSVPrinter;
try (Writer writer = Files.newBufferedWriter(Paths.get("data.csv"));
CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT)) {
csvPrinter.printRecord("Name", "Age", "Email");
csvPrinter.printRecord("John", 25, "john@example.com");
csvPrinter.printRecord("Alice", 30, "alice@example.com");
//...
csvPrinter.flush();
csvPrinter.close();
} catch (IOException e) {
e.printStackTrace();
}
3. Super CSV
import org.supercsv.io.CsvBeanReader;
import org.supercsv.io.ICsvBeanReader;
import org.supercsv.prefs.CsvPreference;
try (ICsvBeanReader beanReader = new CsvBeanReader(new FileReader("data.csv"), CsvPreference.STANDARD_PREFERENCE)) {
String[] header = beanReader.getHeader(true);
User user;
while ((user = beanReader.read(User.class, header)) != null) {
String name = user.getName();
int age = user.getAge();
String email = user.getEmail();
//...
}
} catch (IOException e) {
e.printStackTrace();
}
import org.supercsv.io.CsvBeanWriter;
import org.supercsv.io.ICsvBeanWriter;
import org.supercsv.prefs.CsvPreference;
try (ICsvBeanWriter beanWriter = new CsvBeanWriter(new FileWriter("data.csv"), CsvPreference.STANDARD_PREFERENCE)) {
String[] header = {"name", "age", "email"};
beanWriter.writeHeader(header);
User user1 = new User("John", 25, "john@example.com");
User user2 = new User("Alice", 30, "alice@example.com");
beanWriter.write(user1, header);
beanWriter.write(user2, header);
//...
beanWriter.flush();
beanWriter.close();
} catch (IOException e) {
e.printStackTrace();
}