InputSource 和 InputStream 有啥区别? [复制]
Posted
技术标签:
【中文标题】InputSource 和 InputStream 有啥区别? [复制]【英文标题】:What is the difference between InputSource and InputStream? [duplicate]InputSource 和 InputStream 有什么区别? [复制] 【发布时间】:2014-10-15 07:42:28 【问题描述】:解析xml时使用InputSource和InputStream有什么区别。 我在一些教程中看到了这两个例子
没有输入源:
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);
那么性能有什么不同吗?还是在其他方面?
【问题讨论】:
你用谷歌搜索过你的问题吗? “InputSource 和 InputStream 之间的区别?”第二个答案... 是的,我做到了,抱歉不知道为什么,我没有找到this问题 【参考方案1】:InputSource
可以从 InputStream
读取,但它也可以从 Reader
读取或直接从 URL(打开流本身)读取。从InputStream
解析等同于从new InputSource(theStream)
解析。
如果您要解析的文件通过相对 URI 引用了外部 DTD 或任何外部实体,那么您无法从普通的 InputStream
解析它,因为解析器不知道它应该使用的基本 URL解决这些相对路径。在这种情况下,您需要从流中构造一个 InputSource
并使用 setSystemId
设置基本 URI,然后从该源解析,而不是简单地将流直接传递给解析器。
【讨论】:
感谢您提供更多信息 :) 我在找什么我找到了here以上是关于InputSource 和 InputStream 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 inputsource 转换为 inputstream 并将其作为参数提供给 stringreader?
发生了啥:org.apache.ws.commons.schema.XmlSchemaCollection.read(InputSource)?
避免在 Java 中使用 XPath 重复实例化 InputSource
spring IOC篇二:xml的核心逻辑处理(doLoadBeanDefinitions(inputSource, encodedResource.getResource()))
libgdal.so.20:未定义符号:_ZN11xercesc_3_111InputSource11setEncodingEPKt