0

我从 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);
4

1 回答 1

0

通过更改代码,我不再有问题:

InputStream stream = request.getResponseStream(); reader = new InputStreamReader(stream); this.xmlParser.setInput(reader);

于 2013-03-15T19:20:21.250 回答