0

writeメソッドを使用して (たとえば) 非同期的にデータを送信し、メソッドを使用してデータを受信する Java/scala XMPP クライアント アプリを開発しましたlistener。このlistenerメソッドは、個別の XMPP メッセージ パケットとしてデータを受信し、processPacketメソッドを使用してそれらを処理します (受信したデータの処理内容に基づいて変更できます)。

inputstreamからデータを読み取り、に書き込むサードパーティ ライブラリを接続したいと考えていますoutputstream。具体的にinputstreamは、サードパーティのライブラリの を、私のlistener方法で受け取ったデータを使用してエミュレートし、 を私の方法outputstreamでエミュレートしたいと考えていwriteます。

これを行う最も簡単な方法は何ですか?これには、ストリームから文字列のチャンクへの変換、およびその逆の変換が必要であることを知っています。いくつかのヒントをいただければ幸いです。

XMPP メッセージ パケットの構造は次のとおりです (ただし、必要に応じて変更できます)。

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

1 に答える 1

1

a を使用しByteArrayInputStreamて、特定の文字列の入力ストリームを作成します。文字ではなくバイトを送信するため、エンコードについて考える必要があります。

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" );

繰り返しますが、文字エンコーディングについて考えるのを忘れないでください。

于 2011-02-18T12:51:55.787 に答える