首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CamelFileName与消息体、文件操作

CamelFileName与消息体、文件操作
EN

Stack Overflow用户
提问于 2016-04-15 16:04:35
回答 1查看 1.3K关注 0票数 1

我通过库实现了一个bz2解压缩器,它使用camel在文件系统目录结构中的某个点以下解压缩bz2文件。我获得了文件名,从CamelFileName header中解压缩,用解压缩器打开该文件,并将解压缩文件放回同一个目录。效果很好。调用这里复制的解压缩程序的process()方法缩短了;这个处理器是通过骆驼路由为所有必需的文件调用的:

代码语言:javascript
运行
复制
public void process(Exchange exchange) throws Exception {
    LOG.info(" #### BZ2Processor ####");
    BZ2 bz2 = new BZ2();
    String CamelFileName = exchange.getIn().getHeader("CamelFileName", String.class);
    bz2.uncompress(CamelFileName);   
}

我认为如果我从消息体获取文件会更好。你是怎么做到的呢?

EN

Stack Overflow用户

回答已采纳

发布于 2016-04-15 20:17:02

身体为InputStream型。您可以直接使用此Java类型。骆驼按需读取文件。也就是说,当您试图在路由或bean中访问它时:

代码语言:javascript
运行
复制
String text = exchange.getIn().getBody(String.class);        //or
byte[] bytes = exchange.getIn().getBody(byte[].class);       //or
InputStream is = exchange.getIn().getBody(InputStream.class);

在你认为合适的时候使用上面的一种。至于关闭它,不要担心,骆驼会照顾它。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36651932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档