Кто-нибудь знает какие-либо хорошие библиотеки для преобразования плоского файла в объекты Java? Я нашел flatworm, но я ищу альтернативы.Преобразование плоского файла в объекты Java
ответ
FFP - Плоский файл разборе библиотека
http://jffp.sourceforge.net/
Вы также можете дать попробовать на Fixedformat4j. Мне нравится подход аннотаций, и очень просто определить пользовательский формат поля.
Быстрое обновление: червь не был активным в течение довольно долгое время, есть развилка имени BeanIO: http://www.beanio.org/
Вы хотели бы рассмотреть JRecordBind (я автор)
В отличие от других, он может обрабатывать и создавать плоские файлы, и использует простой XML-схему (так что вам не нужно изучать еще один синтаксис конфигурации). Некоторые пользователи перерабатывают один и тот же XSD для производства как webservice, так и плоских файлов.
пс: Я недавно переехал код github
Я не использовал этот JFlat, Но, кажется, это основа обеспечивает преобразование из плоского файла в объект Java.
Аналогичным образом BeanIO и Jsefa также предоставляет простой и гибкий API.
Вы можете попробовать с FlatPack - но это OLD и документы не являются хорошими, как JFlat или BeanIO
Apache Camel имеет FlatPack компонент, а также от 2.10 имеет BenaIO компонент
Другой вариант, что Я писал, что использует Java аннотаций JFileHelpers - http://jfilehelpers.com
в качестве примера аннотированный боба:
@FixedLengthRecord()
public class Customer {
@FieldFixedLength(4)
public Integer custId;
@FieldAlign(alignMode=AlignMode.Right)
@FieldFixedLength(20)
public String name;
@FieldFixedLength(3)
public Integer rating;
@FieldTrim(trimMode=TrimMode.Right)
@FieldFixedLength(10)
@FieldConverter(converter = ConverterKind.Date,
format = "dd-MM-yyyy")
public Date addedDate;
@FieldFixedLength(3)
@FieldOptional
public String stockSymbol;
}
Тогда все, что вам нужно сделать, это:
FileHelperEngine<Customer> engine =
new FileHelperEngine<Customer>(Customer.class);
List<Customer> customers =
new ArrayList<Customer>();
customers = engine.readResource(
"/samples/customers-fixed.txt");
Если это что-то вроде CSV (или любой файл с разделителями) или XML, это тривиально, чтобы прочитать его и создавать объекты из него. Не могли бы вы рассказать о формате файла и о том, что вы пытаетесь сделать? –
Плоский файл - довольно широкая категория. Текстовый файл? CSV-файл? Сериализованный файл объекта? Что находится в «плоском файле» – Gandalf
Что случилось с Flatworm? –