我可以选择使用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;
...
}