使用camel-bindy或beanio解析键值文本文件

时间:2013-10-17 09:00:49

标签: java csv apache-camel bean-io bindy

我可以选择使用bindy或beanIO camel组件来解析csv文件。除了这个csv,还有包含键值的dat(txt)文件。是否可以使用提到的库之一将此文件解析为Map?

1 个答案:

答案 0 :(得分:1)

bindy 组件可以将 csv文件解组为对象,而不是直接在Map中解组。以下是克劳斯易卜生对related question的回应。 对于beanIO来说似乎是一样的。

但是,您可以使用Camel的 CSV组件,它会将您的文件转换为List<List<String>>

以下是有关bindy(documentation on the Camel site)的更多信息。

您只需声明一个DataFormat:

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

然后像这样使用它:

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

参数"com.acme.model"对应于您定义模型的包。 Camel bindy提供了很多配置绑定的选项我鼓励您查看doc以获取更多详细信息,但基本模型将如下所示:

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

    @DataField(pos = 1)
    private int orderNr;

    ...
}