public void writeWithHeaders(List<?> beans, OutputStream outputStream, Integer delimiterChar, String... headers) throws IOException { try (BufferedWriter csvWriter = new BufferedWriter(new OutputStreamWriter(outputStream))) { CsvPreference csvPreference = CsvPreference.STANDARD_PREFERENCE; if (delimiterChar != null) { csvPreference = new CsvPreference.Builder('"', delimiterChar, "\n").build(); } try (CsvBeanWriter csvBeanWriter = new CsvBeanWriter(csvWriter, csvPreference)) { csvBeanWriter.writeHeader(headers); for (Object bean : beans) { csvBeanWriter.write(bean, headers); } } } }