2013-01-23 42 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);