Java 使用InputStream进行日志记录,然后进行XML解析
我想做的是记录我使用的inputstream的输出Java 使用InputStream进行日志记录,然后进行XML解析,java,Java,我想做的是记录我使用的inputstream的输出 org.apache.http.HttpEntity entity = response.getEntity(); org.apache.http.HttpResponse content =entity.getContent(); //Print the result to the screen for debugging //puroposes if(Logging
org.apache.http.HttpEntity entity = response.getEntity();
org.apache.http.HttpResponse content =entity.getContent();
//Print the result to the screen for debugging
//puroposes
if(Logging.DEBUG) {
InputStream content =entity.getContent();
int i;
StringBuilder b = new StringBuilder();
while( (i=content.read()) != -1 ) {
b.append((char)i);
}
Log.d(TAG, b.toString());
}
现在,在完成日志记录之后,我希望通过XML解析器使用完全相同的流。问题是它告诉我蒸汽已经被使用了
我尝试在调试前后使用
mark()
和reset()
调用,但没有成功。这取决于返回的inputstream是否支持它。InputStream
类中的默认实现不执行任何操作,如下所示。因此,您无法确定返回的流是否真正支持它。为了确保这一点,您应该将其包装在一个支持这些方法的文件中。通常mark()
和reset()
不会在任意输入流上工作。它们只适用于底层数据源支持这些操作的子类,如FileInputStream
对于SocketInputStream或console InputStream之类的东西,您唯一的选择将是在某处读取并缓冲整个流内容;例如,在内存中或将其写入临时文件。此解决方案可能对某些人有帮助:考虑使用来自Apache CAMONS库的TEEIN流