ファイルにバイナリデータがあり、バイト配列に読み込んで問題なく処理できます。ここで、ネットワーク接続を介してデータの一部を XML ドキュメントの要素として送信する必要があります。私の問題は、データをバイト配列から文字列に変換してバイト配列に戻すと、データが破損することです。これを 1 台のマシンでテストして、問題を文字列変換に切り分けたところ、XML パーサーやネットワーク トランスポートによって破損していないことがわかりました。
私が今持っているのは
byte[] buffer = ...; // read from file
// a few lines that prove I can process the data successfully
String element = new String(buffer);
byte[] newBuffer = element.getBytes();
// a few lines that try to process newBuffer and fail because it is not the same data anymore
バイナリを文字列に変換し、データを失うことなく元に戻す方法を知っている人はいますか?
回答済み: ありがとう、サム。私はばかのように感じます。私のSAXパーサーが文句を言っていたので、昨日これに答えてもらいました。この一見別の問題に遭遇したとき、何らかの理由で、それが同じ問題の新しい症状であるとは思いもしませんでした。
編集: 完全を期すために、 Apache Commons CodecパッケージのBase64クラスを使用してこの問題を解決しました。