Получите количество байтов, прочитанных javax.xml.stream.XMLStreamReader - PullRequest
1 голос
/ 27 февраля 2009

Есть ли способ получить количество байтов, прочитанных XMLStreamReader, я использую java.io.FileReader, который передается на фабрику, которая создает программу чтения XML. Я сомневаюсь, что это возможно с XMLStreamReader, но любой обходной путь великолепен.

Ответы [ 2 ]

1 голос
/ 27 февраля 2009

Предполагая, что вы делаете что-то вроде этого:

final XMLInputFactory inputFactory;
final XMLStreamReader reader;
final InputStream     stream;

inputFactory = XMLInputFactory.newInstance();
stream       = new FileInputStream(file);
reader       = inputFactory.createXMLStreamReader(stream);

Вы бы сделали что-то вроде этого:

final XMLInputFactory     inputFactory;
final XMLStreamReader     reader;
final InputStream         stream;
final CountingInputStream countingStream;

inputFactory   = XMLInputFactory.newInstance();
stream         = new FileInputStream(file);
countingStream = new CountingStream(stream);
reader         = inputFactory.createXMLStreamReader(countingStream);

Где CoutingInputStream - это класс, который вам нужно будет написать / найти, который отслеживает количество считываемых байтов из базового объекта InputStream.

1 голос
/ 27 февраля 2009

Один из популярных способов - создать ByteCountingReader(Reader r);, думаю, мне не нужно быть более конкретным, чем это: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...