InputSource和InputStream有什么不同? [英] What is the difference between InputSource and InputStream?

查看:0
本文介绍了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有什么不同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆