1
我實際加載OWL文件在我的Java Web應用程序會與下面的代碼:如何訪問其他包文件,而無需使用虛擬類
InputStream is = Dummy.class.getResourceAsStream("content.owl");
我在同一個包創建Dummy.class
爲content.owl
是讓訪問這個文件。
是否有(重構安全)的方式直接加載content.owl
而不需要虛擬類?
我實際加載OWL文件在我的Java Web應用程序會與下面的代碼:如何訪問其他包文件,而無需使用虛擬類
InputStream is = Dummy.class.getResourceAsStream("content.owl");
我在同一個包創建Dummy.class
爲content.owl
是讓訪問這個文件。
是否有(重構安全)的方式直接加載content.owl
而不需要虛擬類?
我認爲你應該能夠從任何類獲取該資源,根據放置編譯文件的輸出文件夾的位置給出它的相對路徑。
例如最初在凸出/ SRC/A/B/content.owl包的資源文件和我訪問此資源是在包凸出/ SRC/A/B/C/d/MyClass的類別。 java。在構建項目後,我的可執行文件將進入bin文件夾,並且我訪問資源的類將轉到proj/bin/a/b/c/d/MyClass.class目錄和資源將進入proj/bin/a/b/content.owl。
而作爲斌文件夾被指定爲我的項目的類路徑的輸出文件夾,我可以訪問的代碼資源:
InputStream is = MyClass.class.getResourceAsStream("https://stackoverflow.com/a/b/content.owl");
這聽起來不錯。但是這個重構是否安全?如果content.owl的名稱改變了怎麼辦?我如何防止運行時錯誤? –
那麼,我認爲如果由於無法加載該資源而出現的錯誤是可以容忍的,那麼可以檢查輸入流是否爲空,如果不能容忍,則可以嘗試給出資源的路徑作爲附加參數或配置,或者如果可以更改名稱,可能會有其他解決方法。我想你應該最終知道資源的新名稱。 – suat