解析大型JSON字符串時發生內存不足錯誤。Android Out of Memory從JSON解析base64字符串
我見過使用GSON傳輸大型JSON文檔的幾個例子,但我的問題是我的JSON文檔沒有數百或數千個可以高效標記的'行'。而是它包含一個大約15MB數據的單個base64節點,例如
{
"id":"somefile",
"base64":"super long base64 string...."
}
如何解析單個base64字符串從此JSON文檔到文件並保存到文件系統而不會耗盡內存?使用StringBuilder將base64節點解析爲字符串是導致當前OOM錯誤的原因。例如
...
InputStream is = con.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line); //out of memory
}
reader.close();
//parse the response into a POJO
MyFileClass f = new Gson().fromJson(sb.toString(), MyFileClass.class);
已經大堆,thx – rmirabelle