0

これは私の場合です:私はリポジトリからファイルを読み取るためにライブラリを使用しています(そのライブラリを変更することはできません)、ライブラリにはgetContent文字列を返すメソッドがあります(BasicResponseHandler応答を文字列に変換するために使用します)が、リポジトリバイナリファイルも含まれているので、それをbytes[]ファイルとして保存する必要があります。使用 content.getBytes("UTF-8")してみましたが、テキストファイルで動作しますが、画像などの他のファイルでは、破損したファイルが表示されます。

BasicResponseHandlerこれを使用して入力を文字列に変換します(文字セットはUTF-8です)。

Reader reader = new InputStreamReader(instream, charset);
CharArrayBuffer buffer = new CharArrayBuffer(i); 
try {
    char[] tmp = new char[1024];
    int l;
    while((l = reader.read(tmp)) != -1) {
        buffer.append(tmp, 0, l);
    }
} finally {
    reader.close();
}
return buffer.toString();

誰かが私に何ができるか知っていますか?

4

2 に答える 2

2

画像を読み取るとき、それは文字列ではないため、変換しないでください。byte[] のバックアウトをファイルに書き込むだけで、そのファイルに画像が保存されます。

于 2012-11-19T19:32:41.810 に答える
1

使用しているライブラリコードを編集できない場合は、使用する新しいライブラリを探すことをお勧めします。おそらく、ファイルのコンテンツタイプについて何も想定していないものです。

于 2012-11-19T19:56:40.150 に答える