尝试使用STAX
为学校项目解析xml。如果我有一个元素:
<binary data></binary data>
如果此数据需要高达250 mb,如何处理?
XMLStreamReader
byte[] getElementAsBinary()
private byte[] readBinary(XMLStreamReader2 sr) throws XMLStreamException {
Stax2Util.ByteAggregator aggr = new Stax2Util.ByteAggregator();
byte[] buffer = aggr.startAggregation();
while (true) {
int offset = 0;
int len = buffer.length;
do {
int readCount = sr.readElementAsBinary(buffer, offset, len);
if (readCount < 1) { // all done!
return aggr.aggregateAll(buffer, offset);
}
offset += readCount;
len -= readCount;
} while (len > 0);
buffer = aggr.addFullBlock(buffer);
}
}
但我无法保留这笔数据。如果有人可以帮助我,我会非常感激。
修改
是否有可能以某种方式读取数据流?目前我有:
{{1}}