2014-07-15 27 views
0

我用的IntelliJ的工作和我的XML文件是在下面的路徑 -如何從Java項目加載XML文件?

C:\工作區\一個\ 2 \ 3 \ SRC \主\ java中的\ com \包\ SERV \ AP \ VersionOne的\ fine.xsd

現在我正在嘗試讀取這個XML文件,因爲我需要從中創建StreamSource對象。當我使用絕對路徑,那麼它工作正常 -

StreamSource XSD = new StreamSource(new File("C:\\workspace\\one\\two\\three\\src\\main\\java\\com\\package\\serv\\ap\\versionOne\\fine.xsd")); 

但上面沒有做正確的方式,因爲它不會在其他機器上工作。所以我試圖用getResourceAsStream但我得到的一切爲空內StreamSource對象

StreamSource XSD = new StreamSource(this.getClass().getResourceAsStream("fine.xsd")); 

這有什麼錯嘗試加載XML文件,我這樣做不爲我工作嗎?

+0

你想達到什麼目的? – SimY4

+0

@ SimY4我只是試圖找到一種方法來閱讀XML文件使用正確的方式不是絕對路徑,因爲它不會在其他機器上工作。我不知道我該怎麼做。 – john

回答

1

您需要獲得在classpath的XSD文件。然後,無論您是在IntelliJ還是在其他地方運行,您都將能夠以相同的方式讀取文件。

在IntelliJ中,將文件夾添加到項目類路徑中的方式與使用jar文件的方式相同。

當您構建一個jar文件來運行您的應用程序時,在其他位置包含jar文件根目錄中的xsd。

然後,您可以使用getResourceAsStream(),無論您的應用程序從哪裏運行。

-1

使用

System.getProperty("user.dir"); 

這會給你的PWD,你可以從那裏導航。

+0

我應該在課堂上使用這個,我想讀取XML文件嗎? – john

+0

是的,捕獲字符串中的返回值。 –

+0

Ohkk得到那個之後,我該如何使用它? – john