本文介绍了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有什么不同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。