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

最佳答案

bindy组件可以将csv文件解组到Object中,而不是直接在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"对应于您定义模型的包。骆驼绑定提供了很多配置绑定的选项。我鼓励您查看文档以获取更多详细信息,但是基本模型如下所示:

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

    @DataField(pos = 1)
    private int orderNr;

    ...
}

07-24 18:47