【发布时间】:2013-10-17 19:52:14
【问题描述】:
我可以选择使用 bindy 或 beanIO camel 组件来解析 csv 文件。除了这个 csv 之外,还有一个包含键值的 dat (txt) 文件。是否可以使用上述库之一将此文件解析为 Map?
【问题讨论】:
标签: java csv apache-camel bean-io bindy
我可以选择使用 bindy 或 beanIO camel 组件来解析 csv 文件。除了这个 csv 之外,还有一个包含键值的 dat (txt) 文件。是否可以使用上述库之一将此文件解析为 Map?
【问题讨论】:
标签: java csv apache-camel bean-io bindy
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 提供了很多配置绑定的选项,我鼓励您查看文档以了解更多详细信息,但基本模型将如下所示:
@CsvRecord(separator = ",")
public class Order {
@DataField(pos = 1)
private int orderNr;
...
}
【讨论】: