Java SAXParser - держать InputStream открытым
У меня есть BufferedInputStream
из которого я хочу разобрать XML с SAXParser
но затем снова использовать его (например, mark(int)
& reset()
). Однако этот поток закрыт в parse()
метод. Можно ли как-то сказать SAXParser
оставить его открытым? В крайнем случае обернуть этот поток неоткрываемым потоком.
Спасибо.
2 ответа
Решение
Как насчет чего-то вроде:
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);