我有一個BufferedInputStream
從中我想解析XML與SAXParser
但隨後又重新使用它(例如mark(int)
& reset()
)。但是,此流在parse()
方法中關閉。是否有可能以某種方式告訴SAXParser
將其打開?最後的手段是用不可關閉的流封裝這個流。的Java SAXParser的 - 保持開放的InputStream
謝謝。
我有一個BufferedInputStream
從中我想解析XML與SAXParser
但隨後又重新使用它(例如mark(int)
& reset()
)。但是,此流在parse()
方法中關閉。是否有可能以某種方式告訴SAXParser
將其打開?最後的手段是用不可關閉的流封裝這個流。的Java SAXParser的 - 保持開放的InputStream
謝謝。
如何像:
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」?如果是這樣,這是無益的。 – OldCurmudgeon
@Paul:當然是 – woky
但是這個帖子並沒有解決問題,也沒有提示解決方案:o) –
你們,這是不得已而爲之我提到,但無論如何感謝 – woky
我很想知道你爲什麼看到作爲最後的手段。它確實是你想要的。 – OldCurmudgeon
因爲它很醜。 IMO庫不應該關閉在InputStream/Reader中傳遞。 – woky