我可以选择使用 bindy 或 beanIO 驼组件来解析 csv 文件。除了这个csv之外,还有包含键值的dat(txt)文件。是否可以使用上述库之一将此文件解析为 Map?
bindy 组件可以将 csv 文件解组为对象,而不是直接在 Map 中解组。以下是克劳斯·易卜生对相关问题的回答。似乎豆IO也是如此。
但是,您可以使用Camel的CSV组件,它将您的文件转换为List<List<String>>
。
以下是有关bindy的更多信息(Camel网站上的文档)。
你只需要声明一个数据格式:
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;
...
}