Java SAXParser-保持InputStream打开
我有一个Java SAXParser-保持InputStream打开,java,stream,sax,Java,Stream,Sax,我有一个BufferedInputStream,我想从中使用SAXParser解析XML,但再次重用它(例如mark(int)&reset())。但是,此流在parse()方法中关闭。有没有可能告诉SAXParser让它保持打开状态?最后一种方法是使用不可关闭的流来包装此流 谢谢。像这样的东西怎么样: class WontCloseBufferedInputStream extends BufferedInputStream { public void close () { // D
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);
解析器完成时,
InputSource
是否关闭?如果是这样的话,这是没有帮助的。但是,这篇文章既不能解决问题,也不能暗示解决方案:o)我很想知道为什么你认为这是最后的手段。它正是你想要的,因为它很丑。IMO库不应关闭传入的InputStream/Reader。