2011-01-02 29 views
1

皆さん、私はネットワーク経由でさまざまなデバイスにNSDictionaryを送信するCocoaアプリケーションを用意しています。これまでは他のMacにしか送っていなかったので、NSKeyedArchiverを使ってNSDataオブジェクトに書き込んでもうまくいきました。もう一方ではNSKeyedUnarchiverを使用します。NSDataをplist形式でJavaの文字列に変換する

私は今のWindowsをサポートするためのJava実装を書いています、と私は、ネットワークを介して来ているのplistデータを、変換する必要があるような単純なJavaのStringに

< 3c3f786d 6c207665 7273696f ... > 

。 (XMLパーサーで読むことができるように)逆はここに答えているようです:[https://stackoverflow.com/questions/3774872]しかし、私はまだ、どのような順序でエンコード/デコードを実行するべきかを頭で覆すことはできません。 1

答えて

2

あなたが見ている "文字列"は実際には生の中に現れるXMLファイルです。

あなたはbyte[]配列オブジェクトとしてそれを見ている場合、それはjava.lang.Stringコンストラクタに渡すことができます。

byte[] theBytes = ...; 
String theString = new String(theBytes, "UTF-8"); 

そして、そこからXMLパーサへ。

ネットワークを介して送信される実際のバイト等'<'' ''3''c'、ある場合は、データの-description方法を介しNSStringにデータを変換するように見えるので、次に何かがデータを送信側にグラグラですそれを送る前に。 NSKeyedUnarchiverはこのような文字列を扱うには十分スマートではないので、私はこれが当てはまるとは思わないが、もしそうなら、それを生のバイトストリームに変換し、上記のJavaコンストラクタを使用してあなたのXML文字列を返します。

+0

データが実際にプレーンテキストのXMLとしてワイヤを渡ってきていることが正しいと思っています。記述方法はバイトを吐き出しています。私はWindowsの読み込み部分を完成させ、あなたにお返しします。 –