我可以选择使用bindy或beanIO camel组件来解析csv文件。除了这个csv,还有包含键值的dat(txt)文件。是否可以使用提到的库之一将此文件解析为Map?
答案 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;
...
}