gpt4 book ai didi

java - 如何使用 apache Camel dsl 删除 csv header

转载 作者:行者123 更新时间:2023-12-02 10:00:19 31 4
gpt4 key购买 nike

通过仅删除 csv 的标题行(即正文的第一行)读取 csv 文件内容并生成文本文件作为输出。我可以通过输入数据来生成文本文件,但如何从 csv 中删除标题/第一行却无法做到这一点。

using camel 2.32.2

由于我是 Camel 新手,我尝试了一些方法,例如此版本中不存在删除第一行/首先删除标题。我希望它能用相同的 dsl 语言来完成,而不是通过编写一些处理器等来完成。下面是读取 csv 并将数据放入文本文件的基本代码,但如何删除 csv 的标题并放入其余数据。

    <route id="convertFileContents">
<from id="_from1" uri="file:{{INPUT_FILEPATH}}?include=.*.csv&amp;moveFailed={{ERROR_FILEPATH}}&amp;move={{PROCESSED_FILEPATH}}&amp;noop=false" />
<log id="_log1" message="CONTENTS OF THE CSV BEFORE TRANFORMATION-->${body}" />
<convertBodyTo id="_convertBodyTo1" type="java.lang.String" />
<setHeader headerName="fName" id="_setHeader1">
<simple>${file:onlyname.noext}</simple>
</setHeader>
<setBody id="_setBody1">
<simple>${body}</simple>
</setBody>
<log id="_log2" message="CONTENTS OF THE CSV AFTER TRANFORMATION-->${body}" />
<to id="_to2" uri="file:{{GENERATED_FILEPATH}}?fileName=${headers.fName}.txt" />
</route>

文件输入:csv

Accident Description,Reported By,Date Of Loss,Reported Date

car hit,john,4/20/2012,11-Apr-19

Crane fell,john,9/1/2011,11-Apr-19

文件预期输出:文本

car hit,john,4/20/2012,11-Apr-19

Crane fell,john,9/1/2011,11-Apr-19

最佳答案

您可以通过使用camel bindy和属性skipFirstLine来实现它。

定义一个POJO类: 导入 org.apache.camel.dataformat.bindy.annotation.CsvRecord; 导入 org.apache.camel.dataformat.bindy.annotation.DataField;

@CsvRecord(separator = ",", skipFirstLine = true)
public class test
{

@DataField(pos = 1)
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@DataField(pos = 2)
private String age;

public String getAge() {
return age;
}

在您的 route ,您可以按如下方式解码

  from("file:/test?include=.*.csv&noop=true").routeId("test")
.unmarshal(new BindyCsvDataFormat(test.class))
.marshal(new BindyCsvDataFormat(test.class))
.to("file:/test/?fileName=output.txt&fileExist=Append");

关于java - 如何使用 apache Camel dsl 删除 csv header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55684420/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com