如何在骆驼中将文件拆分为行但以不同方式处理第一行

Posted

技术标签:

【中文标题】如何在骆驼中将文件拆分为行但以不同方式处理第一行【英文标题】:How to split a file into lines in Camel but process the first line differently 【发布时间】:2013-01-06 18:54:50 【问题描述】:

我正在使用分词器将文件分成几行:

.split().tokenize("\n", 1)

但是,我需要处理的一些文件将包含一个标题行,这将需要以不同于正常行的方式处理。有没有一种简单的方法可以读取第一行,对其进行处理,然后拆分剩余的行?

【问题讨论】:

【参考方案1】:

你可以做这样的事情。它将使用基于内容的路由器 EIP,然后使用不同的子路由进行处理。

from(A)
   .split().tokenize("\n",1)
       .choice()
         .when(simple("$property.CamelSplitIndex > 0"))
           .to("direct:processLine")
         .otherwise()
           .to("direct:processHeader");

from("direct:processLine")
 .bean(processLineBean)
 .to(B);

from("direct:processHeader")
 .bean(processHeaderBean)
 .to(B);

【讨论】:

以上是关于如何在骆驼中将文件拆分为行但以不同方式处理第一行的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫数据框中将多列拆分为行

在Oracle中将连字符分隔的字符串拆分为行

如何在批处理脚本中将字符串拆分为 3 个不同的字符串?

在Oracle中将列转换为行[重复]

如何将大文本文件拆分为行数相等的小文件?

如何在不破坏单词的情况下将字符串拆分为行?