Разобрать текстовый файл "ключ-значение" с помощью camel-bindy или beanio

У меня есть возможность использовать компоненты bindy или beanIO для анализа CSV-файла. Помимо этого csv есть файл dat (txt), который содержит ключ-значение. Можно ли разобрать этот файл на карту с помощью одной из упомянутых библиотек?


person Macchiatow    schedule 17.10.2013    source источник


Ответы (1)


Компонент bindy может преобразовать CSV-файл в объект, а не непосредственно в карту. Вот ответ на связанный вопрос Клауса Ибсена. Кажется, то же самое для beanIO.

Однако вы можете использовать компонент CSV Camel, который преобразует ваш файл в файл List<List<String>>.

Вот дополнительная информация о bindy (документация на сайте Camel).

Вам нужно просто объявить DataFormat:

DataFormat bindy = new BindyCsvDataFormat("com.acme.model");

А затем используйте его следующим образом:

from("file://inbox")
  .unmarshal(bindy)
  .to("direct:whatYouWant");

Параметр "com.acme.model" соответствует пакету, в котором вы определяете свою модель. Верблюжья привязка предоставляет множество возможностей для настройки привязки. Я рекомендую вам ознакомиться с документом для получения более подробной информации, но базовая модель будет выглядеть так:

@CsvRecord(separator = ",")
public class Order {

    @DataField(pos = 1)
    private int orderNr;

    ...
}
person Pith    schedule 17.10.2013