我試圖從本地XML文件創建文檔對象。getSystemResourceAsStream在解析XML時返回null
我的這部分代碼:
DocumentBuilderFactory factoria = DocumentBuilderFactory.newInstance();
DocumentBuilder constructor = factoria.newDocumentBuilder();
Document documento = constructor.parse(ClassLoader.getSystemResourceAsStream(URLXML));
導致以下異常:在線程
例外 「AWT-EventQueue的 - 0」 java.lang.IllegalArgumentException異常:InputStream中不能在零 javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
getSystemResourceAsStr eam()只能在找不到源代碼時返回null,並且我已檢查過文件url是否正確存儲在字符串中(它是C:\ file.xml,它是文件的正確位置)。
那麼什麼是失敗?我究竟做錯了什麼?
你爲什麼要問* classloader *這個資源呢?這聽起來像你剛剛得到了一個文件名而不是資源名......所以爲什麼不使用'FileInputStream'? –
我在問類加載器,因爲根據我讀的信息不使用它可能會導致某些操作系統的可移植性問題。 C:\ file.xml不是有效的資源名稱嗎?那麼什麼是正確的資源名稱? – kace91
這不是一個有效的資源名稱,並且這不是類加載器可能會用到的東西。如果你擔心可移植性,'c:\ file.xml'在大多數操作系統上不會是一個有效的文件。如果您正在嘗試加載文件,只需使用FileInputStream,並確保爲您使用的系統指定了適當的文件名。 –