Java Camel:如何跳过CSV文件中的多个标题行
我将使用ApacheCamel处理CSV文件。我的文件有多个标题行。在Camel中,我只找到了skipFirstLine或skipHeaderRecord(我不清楚),但如何跳过多行?如果要跳过的行数是固定的,那么您可以使用简单的语言跳过X个数。您可能需要先将消息转换为字符串Java Camel:如何跳过CSV文件中的多个标题行,java,csv,apache-camel,Java,Csv,Apache Camel,我将使用ApacheCamel处理CSV文件。我的文件有多个标题行。在Camel中,我只找到了skipFirstLine或skipHeaderRecord(我不清楚),但如何跳过多行?如果要跳过的行数是固定的,那么您可以使用简单的语言跳过X个数。您可能需要先将消息转换为字符串 .convertBodyTo(String.class) .transform(simple("${skip(3)}") 有关跳过方法的详细信息,请参见: 这需要驼峰2.19以上 使用较旧的版本,您需要自己构建一
.convertBodyTo(String.class)
.transform(simple("${skip(3)}")
有关跳过方法的详细信息,请参见:
这需要驼峰2.19以上
使用较旧的版本,您需要自己构建一些自定义代码来跳过这些行 在处理正文之前,可以在正文上使用
标记化
方法
tokenize(String token, int group, boolean skipFirst)
例如:
`from("filePath").
split(body().tokenize("\n",1,true)).
streaming().
process(exchange -> {....}).
to("filePath");`
我认为这是不可能开箱即用的:正如您所看到的skipFirstLine只跳过一行,skipHeaderRecord似乎可以跳过每条记录上的额外字段。我对ApacheCamel的了解还不够,无法给出答案,但我建议您在将CSV提供给bindy2.19之前,先找到一种修剪标题的方法?我认为最新版本是2.18.3,它甚至更复杂-我不必跳过前n行,但也要处理它们,但它们的格式与其他行不同。如何做到这一点?然后分两步处理它们,第一步编写一些代码来读取和处理标题,然后仅将消息转换为可以使用Camel CVSYes处理的正文行,但如何做到这一点?我在哪里可以找到一个例子?