Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Camel:如何跳过CSV文件中的多个标题行_Java_Csv_Apache Camel - Fatal编程技术网

Java Camel:如何跳过CSV文件中的多个标题行

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以上 使用较旧的版本,您需要自己构建一

我将使用ApacheCamel处理CSV文件。我的文件有多个标题行。在Camel中,我只找到了skipFirstLineskipHeaderRecord(我不清楚),但如何跳过多行?

如果要跳过的行数是固定的,那么您可以使用简单的语言跳过X个数。您可能需要先将消息转换为字符串

  .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处理的正文行,但如何做到这一点?我在哪里可以找到一个例子?