6
我正在嘗試使用駱駝處理可能的大文件,並擔心駱駝Message
的身體「適合」他們。有沒有一種方法可以將文件的名稱(路徑)作爲消息的主體傳遞,然後在處理器中使用它來從磁盤讀取?駱駝:「文件」組件,但只傳遞文件名身體
我正在嘗試使用駱駝處理可能的大文件,並擔心駱駝Message
的身體「適合」他們。有沒有一種方法可以將文件的名稱(路徑)作爲消息的主體傳遞,然後在處理器中使用它來從磁盤讀取?駱駝:「文件」組件,但只傳遞文件名身體
你可以傳入一個java.io.File實例。這實際上是Camel文件組件本身的功能(儘管它放置在WrappedFile中,由於與ftp組件共享代碼)。
你當然也可以只存儲文件作爲字符串的名稱,然後從處理器訪問的文件,無論是通過
String name = exchange.getIn().getBody(String.class);
File file = new File(name);
...
FileInputStream fis = new FileInputStream(file);
// read the file from the stream, etc.
讓我看看,如果我理解正確。當它消耗它時,Camel不會**將文件內容加載到消息中,而是傳遞一個'File'(包裹在一個'WrappedFile')對象中?而當我要求身體作爲'byte []'('exchange.getIn()。getBody(byte []。class)'),_then_它加載正文? – Tonio 2012-02-22 15:00:46
是的,這是正確的。該文件的內容按需加載。 – 2012-02-23 04:44:25