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)
解析。
InputStream
解析它,因为解析器不知道它应该用来解析这些相对路径的基本URL。在这种情况下,您将需要从流构造一个InputSource
,并使用setSystemId
设置基本URI,然后从该源进行解析,而不是简单地将流直接传递给解析器。
相关文章