2013-01-23 4 views
6

私はトークナイザを使用して行にファイルを分割しています:が、違った最初の行を処理

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

しかし、私が処理する必要があるファイルのいくつかは、ヘッダが含まれていますラインは、通常のラインとは異なる方法で処理する必要があります。最初の行を読み、処理し、残りの行を分割する簡単な方法はありますか?

答えて

9

このようなことができます。コンテンツベースのルータ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); 
関連する問題