2010-10-08 62 views
8

我需要從Java WAR應用程序的類路徑中讀取文本文件。我怎樣才能讀取它作爲InputStream。文件位於/ WEB-INF/classes /文件夾中,但是當我使用下面的代碼時,它只是返回null。如何從我的WAR中的classes目錄讀取文件?

InputStream input = servletContext.getClass().getClassLoader().getResourceAsStream("my_filename.txt"); 

回答

11

正斜槓前綴它表示classpath的根目錄:

getResourceAsStream("/my_filename.txt") 

或者,你可以使用serlvetContext.getResourceAsStream(..)看起來相對於上下文根的資源。所以課程將是/WEB-INF/classes

+0

我也試過,但它仍然返回null。 servletContext是否有正確的類加載器,或者如何確定我正在使用正確的類加載器? – newbie 2010-10-08 06:49:57

+0

@newbie:。一個訣竅是如果你不能讀取,在相同的位置寫入一個相同名字的文件,然後看看程序是在哪裏寫入文件的。 – 2010-10-08 06:57:06

+0

@newbie是肯定存在的文件嗎?具有相同的名稱,擴展名和大小寫? – Bozho 2010-10-08 07:06:06