之间有什么区别吗
-
DocumentBuilder.parse(InputStream)
and
-
DocumentBuilder.parse(InputSource)
?
我只能发现,对于第一种情况,解析器从流中检测编码,因此它更安全,而在后者中我不确定是否需要设置编码。
我还应该注意其他几点(例如性能)吗?
主要区别在于,第一个允许您仅从二进制源读取 XML 内容,基于InputStream界面。即:直接从文件(使用FileInputStream),一个打开的套接字(来自Socket.getInputStream()), etc.
第二个,DocumentBuilder.parse(InputSource),也允许您从二进制源读取数据(这是一个InputStream
impl) and来自字符源(Reader实施)。因此,通过这个,您可以使用 XML 字符串(使用StringReader
), or a BufferedReader.
虽然使用第二种方法,您已经有机会处理InputStreams
,第一个是一种捷径,所以当你有一个InputStream
你不需要创建一个新的InputSource
。事实上,源代码InputStream
方法是:
public Document parse(InputStream is)
throws SAXException, IOException {
if (is == null) {
throw new IllegalArgumentException("InputStream cannot be null");
}
InputSource in = new InputSource(is);
return parse(in);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)