本文介紹了InputSource和InputStream有什么不同?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
在解析XML時(shí)使用InputSource和InputStream有什么不同。
我在一些教程中看到了這兩個(gè)示例
不帶InputSource:
InputStream is;
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbFactory.newDocumentBuilder();
Document document = db.parse(is);
和InputSource,區(qū)別在哪里
DocumentBuilder db = dbFactory.newDocumentBuilder();
InputSource inputSource = new InputSource(is);
Document document = db.parse(inputSource);
那么在性能上有什么不同嗎?還是在其他地方?
推薦答案
anInputSource
可以從InputStream
讀取,但也可以從Reader
或直接從url讀取(打開流本身)。從InputStream
解析等同于從new InputSource(theStream)
解析。
如果要解析的文件通過(guò)相對(duì)URI引用外部DTD或任何外部實(shí)體,則不能從普通InputStream
解析它,因?yàn)榻馕銎鞑恢浪鼞?yīng)該用來(lái)解析這些相對(duì)路徑的基本URL。在這種情況下,您將需要從流構(gòu)造一個(gè)InputSource
,并使用setSystemId
設(shè)置基本URI,然后從該源進(jìn)行解析,而不是簡(jiǎn)單地將流直接傳遞給解析器。
這篇關(guān)于InputSource和InputStream有什么不同?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,