我从 HTTPResponse 解析 XML 文档。以前,我使用从 InputStream 创建的 String 对象启动了解析器。
当我更改设置以便直接在解析器中使用 inputStream 时,我得到了 OutOfMemory 异常。
奇怪的是解析字符串之前没有问题,所以我想知道为什么 InputStream 需要更多内存。
以前的代码:
final byte[] encodedResponseBytes = IOUtils.toByteArray(httpResponse
.getEntity().getContent());
String message = new String(encodedResponseBytes);
parser.setInput(new StringReader(message));
新代码:
InputStream stream = httpResponse
.getEntity().getContent();
parser.setInput(stream, null);