Я ищу библиотеку Java, которая может помочь мне разобрать файл CSV, содержащий записи, разделенные каналом, и создать из них экземпляры моего класса EJB.
Я рассмотрел несколько альтернатив, таких как SuperCSV, OpenCSV, BeanIO, JFileHelper, jsefa, ... но ни один из них, похоже, не имеет того, что требуется.
Требования к библиотеке:
- поддержка записей с переменным количеством полей
- обеспечивает доступ в стиле итератора, чтобы файл никогда полностью не загружался в память
- поддерживает сопоставление поля его фактическому типу, т. Е. Иметь возможность взять поле даты и поместить его в мой bean-компонент java.util.Date вместо строки
- позвольте мне предоставить мой собственный объект фабрики для создания bean-компонентов вместо значения по умолчанию для Class.newInstance ()
Кажется, что во всех библиотеках, в которые я смотрел, нет требования # 4.
Я могу жить с отражением, но проблема в том, что он по-прежнему создает новый объект bean для каждой строки в файле CSV. Поскольку единственное, что я хочу сделать с моим bean-компонентом на данный момент, это передать его на уровень персистентности и сохранить его в БД, имеет смысл поместить пару экземпляров bean-компонента в пул и создать фабрику, которая получает экземпляры из этот бассейн. Таким образом, я могу повторно использовать свои экземпляры, и анализ файла CSV из 100 000 строк не приведет к тому, что 100 000 экземпляров будут жить в памяти, пока не появится GC.
Кто-нибудь знает библиотеку, которая может удовлетворить все эти требования?