本文介绍了InputSource和InputStream有什么不同?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在解析XML时使用InputSource和InputStream有什么不同。
我在一些教程中看到了这两个示例
不带InputSource:
InputStream is;
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbFactory.newDocumentBuilder();
Document document = db.parse(is);
和InputSource,区别在哪里
DocumentBuilder db = dbFactory.newDocumentBuilder();
InputSource inputSource = new InputSource(is);
Document document = db.parse(inputSource);
那么在性能上有什么不同吗?还是在其他地方?
推荐答案
anInputSource
可以从InputStream
读取,但也可以从Reader
或直接从url读取(打开流本身)。从InputStream
解析等同于从new InputSource(theStream)
解析。
如果要解析的文件通过相对URI引用外部DTD或任何外部实体,则不能从普通InputStream
解析它,因为解析器不知道它应该用来解析这些相对路径的基本URL。在这种情况下,您将需要从流构造一个InputSource
,并使用setSystemId
设置基本URI,然后从该源进行解析,而不是简单地将流直接传递给解析器。
这篇关于InputSource和InputStream有什么不同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。