内容简介:http://stackoverflow.com/questions/5842201/out-of-memory-error-when-putting-large-json-inputstream-to-string
我从Web服务接收gziped的JSON,然后我解压缩(解压缩的JSON的大小是3.2MB).
我需要将收到的InputStream转换为String,以便我可以创建JSONObject并进行解析.我用这个代码来做:
public static String InputStreamToString(InputStream in)
throws IOException {
BufferedInputStream bis = new BufferedInputStream(in);
ByteArrayOutputStream buf = new ByteArrayOutputStream();
int result = bis.read();
while(result != -1) {
byte b = (byte)result;
buf.write(b);
result = bis.read();
}
return buf.toString();
}
我在最后一行接收java.lang.OutOfMemoryError:“return buf.toString();”在288MB Ram的仿真器和设备上.
我该怎么办?
,并使用StringBuilder附加它们.
假设您仍然遇到问题,问题是,您的应用程序一直在做的其他事情,没有一个单一的内存块足够大. Android垃圾回收器不是一个压缩收集器,所以有可能拥有大量的空闲堆空间,但还不足以满足特定的分配请求.
在这种情况下,您可能需要切换到某种流式JSON解析器.如果您恰好只针对Honeycomb和更高版本,则可以使用
JSONReader
.否则, Jackson
据报在Android上运行,显然具有流式传输模式.
http://stackoverflow.com/questions/5842201/out-of-memory-error-when-putting-large-json-inputstream-to-string
以上所述就是小编给大家介绍的《java – 将大型JSON(InputStream)放入字符串时出现内存不足错误》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 把 GitHub 放入口袋,“开箱” 官方客户端
- 使用pymongo解析文本格式日志后放入mongo
- 把数据库放入Docker是一个好主意吗?
- Azure云连接放入白名单可以给Office 365提速?
- 解决手动运行脚本执行正常而放入crontab后不正常的方法
- 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深度解析淘宝运营
刘涛 / 电子工业出版社 / 2015-9-1 / 49.00元
淘宝运营,仅有知识是不够的,还需要有系统的运营思路。为帮助广大电商从业者以及众多中小卖家更好地运营店铺,《深度解析淘宝运营》全面阐述了整个店铺运营的重点环节,包括淘宝搜索规则、打造爆款、店铺规划、客户服务、直通车、钻石展位、数据分析等内容。具体操作步骤翔实,并且结合笔者的实际操作经验,将各个环节最本质的一面透彻展现给读者,结合理论与实战,尽可能向读者展示一个最真实的运营核心。《深度解析淘宝运营》没......一起来看看 《深度解析淘宝运营》 这本书的介绍吧!