2009-02-26 3 views

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

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 –

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 :-)