Java SAXParser – 保持InputStream打开

我有一个BufferedInputStream ,我想用SAXParser解析XML,然后再重复使用它(例如mark(int)reset() )。 但是,此流在parse()方法中关闭。 有可能以某种方式告诉SAXParser让它保持开放状态吗? 最后一种方法是使用不可关闭的流包装此流。

谢谢。

怎么样的:

 class WontCloseBufferedInputStream extends BufferedInputStream { public void close () { // Do nothing. } public void reallyClose() { super.close (); } } 

您可以将InputSource对象而不是InputStream对象传递给SAXParser

示例代码

 SAXParser parser = // saxpaser object InputSource isource = new InputSource(); InputStream istream = //your inputstream isource.setByteStream(istream); parser.parse(isource, handler);