Y at-il un moyen d'obtenir la quantité d'octets lus par le XMLStreamReader, j'utilise un java.io.FileReader qui est transmis dans l'usine qui crée le lecteur xml. Je doute que cela soit possible avec le XMLStreamReader mais tout le travail autour est génial.Obtenir la quantité d'octets lus par javax.xml.stream.XMLStreamReader
1
A
Répondre
1
En supposant que vous faites somthing comme ceci:
final XMLInputFactory inputFactory;
final XMLStreamReader reader;
final InputStream stream;
inputFactory = XMLInputFactory.newInstance();
stream = new FileInputStream(file);
reader = inputFactory.createXMLStreamReader(stream);
Vous ferait quelque chose comme ceci:
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);
Où CoutingInputStream est une classe que vous devez écrire/trouver qui garde la trace du nombre d'octets lu à partir du objet InputStream sous-jacent.
1
Une façon populaire est de créer un ByteCountingReader(Reader r);
, je suppose que je ne dois pas être plus précis que cela :-)
Si quelqu'un cherche une implémentation de cette solution, voici un lien vers ma courte implémentation sur le hub git: https://github.com/kjkrol/useful-code/blob/master/src/main/java/kjkrol/ code utile/CountingInputStream.java –