這是我的情況:我使用了一個庫,從程序存儲庫讀取文件(我不能修改該庫),該庫有一個方法getContent
返回一個字符串(它使用BasicResponseHandler
對字符串的響應轉換),但庫也包含二進制文件太多了,我需要bytes[]
到保存爲一個文件。我嘗試使用 content.getBytes("UTF-8")
,並將它與文本文件的工作,但如圖像其他文件,我得到一個損壞的文件。的byte []的InputStream轉換成字符串
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();
有誰知道我能做些什麼?
做的唯一一件事就是修復BasicResponseHandler類,並使其返回一個字節數組,而不是一個字符串。 –
我不認爲你可以使用該庫。如果使用任何字符集將任意'byte []'s轉換爲'String',它將不可避免地破壞內容。 –
我想你需要弄清楚他們是如何將圖像文件編碼成字符串的 - 如果你不知道,那麼它現在可能會工作。也許你可以嘗試ASCII編碼? –