Библиотека CsvWriter сериализует Java-объекты в CSV-файл с помощью reflection и аннотаций. Проект реализует интерфейс Writable, покрыт unit-тестами, содержит JavaDoc и демонстрационные примеры в main.
- Сериализация списка объектов одного типа в CSV со строкой заголовка.
- Настройка разделителя через аннотацию
@CsvEntity. - Управление порядком и именем колонок через
@CsvColumn. - Поддержка
null-значений,enum, коллекций и экранирования специальных символов. - Автоматическое создание вложенных директорий при записи файла.
- Генерация тестовых и демонстрационных данных через Datafaker.
org.writer.Writable— общий контракт для записи данных в файл.org.writer.csv.CsvSerializer— преобразует список объектов в CSV-строку.org.writer.csv.CsvWritable— сохраняет результат сериализации в файл.org.writer.csv.annotation— аннотации@CsvEntityи@CsvColumn.org.writer.model— модели, готовые к экспорту в CSV.org.writer.factory.SampleDataFactory— фабрика демонстрационных данных.org.writer.Main— несколько примеров сохранения файлов в директориюoutput.
- Все объекты в списке должны быть одного типа.
- Пустой список и
nullне допускаются. - Класс обязан иметь аннотацию
@CsvEntity. - Хотя бы одно поле должно быть помечено
@CsvColumn. - Значения
orderв@CsvColumnдолжны быть уникальны. - Коллекции сериализуются в одну ячейку через
;. - Значения с разделителем, кавычками или переносами строк автоматически экранируются.
./gradlew test ./gradlew runПосле запуска будут созданы файлы:
output/persons.csvoutput/students.csv