I am trying to export Java beans to CSV using OpenCSV 5.9
This is my export:
try (FileOutputStream fos = new FileOutputStream(file)) {
logger.info("### Writing BOM");
fos.write("uFEFF".getBytes(StandardCharsets.UTF_8));
try (CSVWriter writer = new CSVWriter(new OutputStreamWriter(fos), ';', '"', '"', "n")){
StatefulBeanToCsv<Discography> csv = new StatefulBeanToCsvBuilder<Discography>(writer).build();
logger.log(Level.INFO, "### Writing {0} records", discographies.size());
csv.write(discographies);
}
}
This is my bean class:
@Getter
@Builder
public class Discography {
@CsvBindByPosition(position = 0)
@CsvBindByName(column = "Aufnahme Nr.")
private final Integer recordingNo;
@CsvBindByPosition(position = 1)
@CsvBindByName(column = "Titel")
private final String title;
@CsvBindByPosition(position = 2)
@CsvBindByName(column = "Sub-/Versionstitel")
private final String versionTitle;
@CsvBindByPosition(position = 3)
@CsvBindByName(column = "Strukturierte Bezeichnung")
private final String canonicalName;
@CsvBindByPosition(position = 4)
@CsvBindByName(column = "Gruppe Name")
private final String groupName;
}
I want the header to use the defined names and use the position. Somehow, I now don’t get any header.
I already tried:
https://www.baeldung.com/java-create-csv-pojo-customize-columns#3-custom-position-strategy-and-header-name
This did not work for me.
2