我开发了一个 java/scala XMPP 客户端应用程序,它使用(例如)write
异步发送数据。方法并使用 listener
接收数据方法。 listener
方法接收作为离散 XMPP 消息包的数据,并使用 processPacket
处理它们。方法(我可以根据我想对收到的数据执行的操作进行修改)
我想连接一个从inputstream
读取数据的第三方库。并写入outputstream
。具体来说,我想要 inputstream
使用通过我的listener
接收的数据来模拟的第3方库方法和 outputstream
由我的 write
模仿方法。
最简单的方法是什么?我知道这需要从流转换为字符串 block ,反之亦然。一些提示将不胜感激。
XMPP消息包结构如下(尽管可以根据需要更改):
<message to = ... from = ...><body>data</body></message>
最佳答案
使用ByteArrayInputStream
为给定的字符串创建输入流。您必须考虑编码,因为您发送的是字节而不是字符。
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" );
再次强调 - 不要忘记考虑字符编码。
关于java - 将流转换为字符串 block ,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5041112/