IOUtils.toString()替代大流?

时间:2014-03-06 20:25:46

标签: java io inputstream

我从HTTP请求中收到一个大的响应流。它是JSON,所以我需要将它转换为字符串进行处理。我在调用toString时耗尽了堆空间。

代码如下:

URLConnection conn = new URL(url + "?query=" + URLEncoder.encode(sparql, "UTF-8") + "&output=JSON").openConnection();
conn.setRequestProperty("Accept-Charset", "UTF-8");
InputStream respStream = conn.getInputStream();
response = IOUtils.toString(respStream, "UTF-8");
respStream.close();

我已尽量将堆大小设置为尽可能大。我不能轻易地将数据放在较小的块中(但如果没有更好的选择,我将实现它)。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我最后只是以较小的块请求数据,我本来应该开始这样做。这是一个愚蠢的问题,感谢花时间去看它。