0

我开发了一个 java/scala XMPP 客户端应用程序,它使用(比如说)一种write方法异步发送数据并使用一种方法接收数据listener。该listener方法以离散 XMPP 消息包的形式接收数据并使用processPacket方法处理它们(我可以根据我想要对接收到的数据执行的操作进行修改)

我想连接一个 3rd 方库,该库从一个读取数据inputstream并写入一个outputstream. 具体来说,我希望使用通过我的方法inputstream接收到的数据来模拟 3rd 方库,并通过我的方法来模拟。listeneroutputstreamwrite

最简单的方法是什么?我知道这需要从流转换为字符串块,反之亦然。一些提示将不胜感激。

XMPP 消息包结构如下(但如果需要可以更改):

<message to = ... from = ...><body>data</body></message>
4

1 回答 1

1

使用 aByteArrayInputStream为给定的字符串创建输入流。您必须考虑编码,因为您发送的是字节而不是字符。

String text = message.getBody();  // that's what you need?
InputStream is = new ByteArrayInputStream(text.getBytes("UTF-8"));

反过来,你写入一个ByteArrayOutputStream并从它的字节创建一个新的字符串:

String text = new String( baos.toByteArray(), "UTF-8" );

再次 - 不要忘记考虑字符编码。

于 2011-02-18T12:51:55.787 回答