This page contains an example of writing a CSV file using Super CSV CsvResultSetWriter. You can view the full source of the example here.
Example use the following cell processor configuration.
It demonstrates:
Don't forget that you can write your own cell processors if you want!
/**
* Sets up the processors used for the examples. There are 10 CSV columns, so 10 processors are defined. All values
* are converted to Strings before writing (there's no need to convert them), and null values will be written as
* empty columns (no need to convert them to "").
*
* @return the cell processors
*/
private static CellProcessor[] getProcessors() {
final CellProcessor[] processors = new CellProcessor[] {
new UniqueHashCode(), // customerNo (must be unique)
new NotNull(), // firstName
new NotNull(), // lastName
new FmtDate("dd/MM/yyyy"), // birthDate
new NotNull(), // mailingAddress
new Optional(new FmtBool("Y", "N")), // married
new Optional(), // numberOfKids
new NotNull(), // favouriteQuote
new NotNull(), // email
new LMinMax(0L, LMinMax.MAX_LONG) // loyaltyPoints
};
return processors;
}The example writes a mock implementation of java.sql.ResultSet to a CSV file.
Note that the cell processors are compatible with their associated field types in the ResultSet (e.g. birthDate is a java.util.Date in the ResultSet, and uses the FmtDate cell processor).
/**
* An example of writing using CsvResultSetWriter
*/
private static void writeWithResultSetWriter() throws Exception {
// create ResultSet mock
final String[] header = new String[] { "customerNo", "firstName", "lastName", "birthDate",
"mailingAddress", "married", "numberOfKids", "favouriteQuote", "email", "loyaltyPoints" };
final Object[][] johnData = new Object[][] {{"1", "John", "Dunbar",
new GregorianCalendar(1945, Calendar.JUNE, 13).getTime(),
"1600 Amphitheatre Parkway\nMountain View, CA 94043\nUnited States", null, null,
"\"May the Force be with you.\" - Star Wars", "jdunbar@gmail.com", 0L}};
final ResultSet john = new ResultSetMock(johnData, header);
final Object[][] bobData = new Object[][] {{"2", "Bob", "Down",
new GregorianCalendar(1919, Calendar.FEBRUARY, 25).getTime(),
"1601 Willow Rd.\nMenlo Park, CA 94025\nUnited States", true, 0,
"\"Frankly, my dear, I don't give a damn.\" - Gone With The Wind", "bobdown@hotmail.com", 123456L}};
final ResultSet bob = new ResultSetMock(bobData, header);
ICsvResultSetWriter resultSetWriter = null;
try {
resultSetWriter = new CsvResultSetWriter(new FileWriter("target/writeWithCsvResultSetWriter.csv"),
CsvPreference.STANDARD_PREFERENCE);
final CellProcessor[] processors = getProcessors();
// writer csv file from ResultSet
resultSetWriter.write(john, processors);
resultSetWriter.write(bob, processors);
} finally {
if ( resultSetWriter != null ) {
resultSetWriter.close();
}
}
}Output:
customerNo,firstName,lastName,birthDate,mailingAddress,married,numberOfKids,favouriteQuote,email,loyaltyPoints 1,John,Dunbar,13/06/1945,"1600 Amphitheatre Parkway Mountain View, CA 94043 United States",,,"""May the Force be with you."" - Star Wars",jdunbar@gmail.com,0 customerNo,firstName,lastName,birthDate,mailingAddress,married,numberOfKids,favouriteQuote,email,loyaltyPoints 2,Bob,Down,25/02/1919,"1601 Willow Rd. Menlo Park, CA 94025 United States",Y,0,"""Frankly, my dear, I don't give a damn."" - Gone With The Wind",bobdown@hotmail.com,123456