将csv解组为java对象

时间:2016-09-08 08:52:11

标签: apache-camel

<route id="readCSV">
        <from uri="file:inbox?noop=true&amp;delay=10&amp;fileName=b.csv&amp;delete=true"/>
        <log message="${body}"/>
        <unmarshal ref="csvDataFormat"/>

        <process ref="listRead"/>
        <to uri="direct:ins"/>
    </route>

我有这条路线我正确读取文件但是当我想将它转换为java对象时,列表中充满了空值。 我的问题是什么?

enter image description here

1 个答案:

答案 0 :(得分:1)

一个例子:我们有一个CSV文件,其中包含人员名称,智商及当前活动。

  

115岁的杰克·道尔顿(Jack Dalton)对105岁的阿弗雷尔乔·道尔顿(Averell Joe Dalton)感到很生气,让乔·威廉(Joe William)平静下来      105岁的道尔顿让乔杀死80岁的Averell Averell Dalton,

     

与Rantanplan Lucky Luke一起玩,120,捕捉道尔顿

我们现在可以使用CSV组件来解组此文件:

from("file:src/test/resources/?fileName=daltons.csv&noop=true")
    .unmarshal().csv()
    .to("mock:daltons");

生成的消息将包含List&gt;像:

List<List<String>> data = (List<List<String>>) exchange.getIn().getBody();
for (List<String> line : data) {
    LOG.debug(String.format("%s has an IQ of %s and is currently %s", line.get(0), line.get(1), line.get(2)));
}