Apache Common CSV настроить перенос строки для генерации файла

Использую в своем проекте Apache Common CSV (http://commons.apache.org/proper/commons-csv/). Необходима возможность генерить CSV файл для данных в таблице, имя таблицы и параметры получаю "на лету" с фронта.

Я получаю rows из таблицы и загоняю это в CSVPrinter. Проблема заключается в том, что некоторые поля в таблице - JSON. Поля могу начинаться c \r\n или \n, то бишь - "{\r\n "message_type": "MO"}" и в таком случае CSVprinter отделяет строку на следующую раньше конца строки и я получаю сломанный CSV файл. Покопался в настройках CSVFormat, понял, что есть возможность настроить delimeter и еще кучу параметров, но так и не нашел решения своей проблемы.

try (
            BufferedWriter writer = Files.newBufferedWriter(Paths.get(csvLocation));
            CSVPrinter csvPrinter = new CSVPrinter(writer,
                    CSVFormat.DEFAULT
                    .withHeader(headers))
    ) {
        for (Collection<Object> currentValue : values) {
            csvPrinter.printRecord(currentValue);
        }

        csvPrinter.flush();
        return Files.readAllBytes(Paths.get(csvLocation));
    } catch (IOException e) {
        //TODO logging and custom exception here
        log.error("Something goes wrong while parsing and writing file - " + csvLocation);
        throw new RuntimeException(e.getMessage());
    }

Ответы (0 шт):