实现文件移动,入口类
package com.peidw;
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
/**
* 文件转移例子
* Created by peidw on 2017-09-11.
*/
public class FileMoveWithCamel {
public static void main(String args[]) throws Exception {
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
//from("file:d:/temp/inbox?noop=true").to("file:d:/temp/outbox");
//from("file:d:/temp/inbox/?delay=30000").to("file:d:/temp/outbox");
from("file:d:/temp/inbox/?delay=30000").process(new FileConvertProcessor()).to("file:d:/temp/outbox");
}
});
context.start();
boolean loop =true;
while(loop){
Thread.sleep(25000);
}
context.stop();
}
}
处理接口实现类:
package com.peidw;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* 文件转移 处理器
* Created by peidw on 2017-09-11.
*/
public class FileConvertProcessor implements Processor {
public void process(Exchange exchange) throws Exception {
InputStream body=null;
try {
body = exchange.getIn().getBody(InputStream.class);
BufferedReader in = new BufferedReader(new InputStreamReader(body));
StringBuffer strbf = new StringBuffer("");
String str = null;
str = in.readLine();
while (str != null) {
System.out.println(str);
strbf.append(str + " ");
str = in.readLine();
}
exchange.getOut().setHeader(Exchange.FILE_NAME, "converted.txt");
// set the output to the file
exchange.getOut().setBody(strbf.toString());
} catch (IOException e) {
e.printStackTrace();
}finally {
body.close();
}
}
}