У меня есть большой массив bean-компонентов, которые необходимо записать в файл CSV. Я пытаюсь использовать OpenCSV, но все примеры, которые я вижу в Интернете, просят меня преобразовать bean-компонент (POJO), который у меня есть, в массив строк. Я не хочу этого делать, так как это будет означать, что мне придется пройти миллион bean-компонентов и преобразовать каждый из этих bean-компонентов в String[], что было бы очень затратным по памяти процессом.
Это фрагмент кода, который у меня есть прямо сейчас для этого:
private static void writeRowsToCsv(Path filePath, List<MyBean> rows)
throws IOException {
StringWriter writer = new StringWriter();
CSVWriter csvWriter = new CSVWriter(writer, '#', '\'');
ColumnPositionMappingStrategy mappingStrategy =
new ColumnPositionMappingStrategy();
mappingStrategy.setType(MyBean.class);
List<String[]> rowsInStringArray = convertBeanToStringArray(rows)
csvWriter.writeAll(rowsInStringArray);
}
Есть ли способ избежать преобразования в String[]
и использовать список bean-компонентов, которые я должен записать в файл CSV?
writeNext()
в цикле, преобразуя один компонент за раз. - person Andreas   schedule 10.04.2017writeAll()
? Он перебирает список и записывает их по одному. Как еще он будет обрабатывать список? - person Andreas   schedule 10.04.2017writeAll()
— это не что иное, как цикл, вызывающийwriteNext()
. См. источник код. - person Andreas   schedule 10.04.2017writeNext()
в цикле. Если вы можете написать это как ответ, я могу отметить его принятым. - person jobin   schedule 10.04.2017