Как разобрать двоичные данные из XML? - PullRequest
0 голосов
/ 08 марта 2012

Попытка разобрать xml с STAX для школьного проекта.Если у меня есть элемент:

<binary data></binary data>

, если эти данные занимают до 250 МБ, как с этим бороться?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);
        }
    }
...