從 JAR 檔案存取資源時,開發人員經常會遇到困難。當嘗試使用 FileReader 從 JAR 讀取 XML 檔案時,就會出現這樣的問題,導致「FileNotFoundException」錯誤。
在這種特定情況下,開發人員會正確檢索 XML 檔案的 URL,但遇到錯誤將其傳遞給 FileReader 時。這表明 URL 檢索方法是有效的。然而,問題在於後續步驟:
XMLReader xr = XMLReaderFactory.createXMLReader(); xr.setContentHandler( this ); xr.setErrorHandler( this ); xr.parse( new InputSource( new FileReader( filename )));
FileReader 需要一個檔案路徑作為其參數,而 getClass().getResource() 取得的 URL 則指向 JAR 中的資源。
要解決此問題,請使用 java.lang.Class.getResourceAsStream(String)方法,該方法傳回一個可用於讀取資源的InputStream:
URL url = getClass().getResource("/xxx/xxx/xxx/services.xml"); InputStream is = url.openStream();
然後可以使用InputStream來初始化XML解析器的InputSource:
xr.parse( new InputSource( is ));
透過使用getResourceAsStream,開發人員可以成功從JAR 檔案讀取XML 資源,消除了「FileNotFoundException」錯誤。
以上是為什麼 FileReader 無法從 Java JAR 讀取 XML,以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!