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 回答