IIB-使用Java计算节点将BLOB转换为字符串

时间:2018-08-08 09:42:45

标签: java messagebroker

因此,我有一个带有“文件读取”节点的简单消息流,将.txt(说什么)解析为BLOB,我必须将其转换为Java Compute节点中的字符串。从未使用过JAVA,我该怎么办?

然后,我必须给字符串一个新值(无论如何),并将逻辑树主体元素切换为新值。

应该很简单,但对我来说仍然是一个艰难的学习过程,无处不在。所有帮助表示赞赏。 :)

2 个答案:

答案 0 :(得分:1)

解析为BLOB时,最终在assembly.getMessage().getRootElement().getLastChild().getLastChild()中得到一个字节数组,并将其转换为String应该很容易:

String(byte[] bytes, Charset charset)

您可以从Preperties子树中获取字符集。

您可以在此处阅读有关访问消息树部分的信息: https://www.ibm.com/support/knowledgecenter/en/SSMKHH_9.0.0/com.ibm.etools.mft.doc/ac30330_.htm

答案 1 :(得分:0)

以防万一,另一种实现方法是直接使用专用解析器(DFDL,...)解析输入文件。如果有一天您的文档不是您期望的格式,它将抛出一个正确的错误,并且不会在试图将字符串转换为字符串的java行上崩溃。对于您的情况来说,它可能太复杂了(而且也没有用),但是如果您正在学习,我会建议您使用解析器,这样您就不必在以后的情况中学习它。

但是,只要您牢记以BLOB形式读取就可以了,只要您牢记这意味着完全可以读取任何内容,因此,只要您正确处理(try / catch / throw),java解决方案就可以了。 / p>