2009-02-26 77 views

回答

1

更具体假设你正在做财产以后这样的:

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

如果有人寻找这个解决方案的实现这里是一个链接到我的git集线器上的短执行: https://github.com/kjkrol/useful-code/blob/master/src/main/java/kjkrol/ usefulcode/CountingInputStream.java – 2014-11-18 12:59:53

1

一种流行的方法是创建一个ByteCountingReader(Reader r);,我想我没有要任何比这:-)