繁体   English   中英

将流转换为字符串块,反之亦然

[英]converting streams to blocks of strings and vice-versa

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

我想连接一个第三方库,该库从输入inputstream读取数据并将其写入outputstream 具体而言,我想inputstream的第三方库的使用通过我接收到的数据进行模拟listener法和outputstream由我来模拟write方法。

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

XMPP消息包结构如下(尽管可以根据需要更改):

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

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

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

另一方面,您写入ByteArrayOutputStream并从其字节创建一个新的String:

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

再说一遍-不要忘记考虑字符编码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM