Я анализирую InputStream со следующим кодом, и он работает нормально.
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
XmlHandlerMatchDetails handler = new XmlHandlerDetails();
xr.setContentHandler(handler);
xr.parse(new InputSource(data));
Теперь мне нужно войти в InputStream, чтобы проверить его, я изменяю предыдущий код следующим образом:
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
XmlHandlerMatchDetails handler = new XmlHandlerDetails();
xr.setContentHandler(handler);
xr.parse(new InputSource(data));
BufferedReader br = new BufferedReader(new InputStreamReader(data));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
String text = sb.toString();
Log.i(mTag, text);
Но у меня ошибка
09-19 12: 13: 02.982: ОШИБКА / MyClass (338): java.io.IOException: попытка чтения в закрытом потоке.
Какможно войти или преобразовать поток в строку, не закрывая ее?
РЕДАКТИРОВАТЬ - РЕШЕНО !!!
Я решаю это, анализируя строку вместо InputStream
xr.parse(new InputSource(new StringReader(text)));