我开发了一个java / scala XMPP客户端应用程序,它使用(比方说)write
方法异步发送数据,并使用listener
方法接收数据。 listener
方法接收数据作为离散的XMPP消息包,并使用processPacket
方法处理它们(我可以根据我想对接收的数据进行修改)
我想连接第三方库,该库从inputstream
读取数据并写入outputstream
。具体来说,我希望使用通过我的inputstream
方法收到的数据模拟第三方库的listener
,并使用outputstream
方法模拟write
。< / p>
最简单的方法是什么?我知道这需要从流转换为字符串块,反之亦然。一些提示将不胜感激。
XMPP消息包结构如下(尽管如果需要可以更改):
<message to = ... from = ...><body>data</body></message>
答案 0 :(得分:1)
使用ByteArrayInputStream
为给定的String创建输入流。你必须考虑编码,因为你发送的是字节而不是字符。
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" );
再次 - 不要忘记考虑字符编码。