本文介紹了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有什么不同?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,