2013-12-11 56 views
1

中的文件路徑如何找到我已上載如何找到一個Java Web服務

目前我正在試圖通過一個RESTful Web服務返回從文本文件中的字符串的我的文件路徑。但是,在tomcat服務器上運行Web項目時,我無法訪問文件路徑位置。

該文件包含在

Project root 
|_Java Resources 
    |_package 
     |_MyServiceClass.java 
|_ resources 
    |_myText.txt 

要創建的服務使用的javax,看起來像

@GET 
@Produces(MediaType.TEXT_HTML) 
public String returnStriing() throws { 
     String inputFileName = "resources/myText.txt"; 
     File file = new File(inputFileName); 
    } 

提供的解決方案using相對路徑並沒有爲我工作。我如何找到文件的路徑?

回答

0

這是一種常見的資源誤解。雖然它們在構建項目時是「普通文件」,但它們通常會編譯爲JAR文件或以其他方式隱藏在您無法訪問的路徑位置。如果它在JAR中,File類將永遠無法打開它。

退房..

this.getClass().getResourceAsStream("/myText.txt") 

將返回的InputStream爲你以後的資源。注意/在前面。這是資源基礎的絕對路徑。

此方法在Class上的原因是資源可能與類文件在同一個包中。在這種情況下,你會使用...

this.getClass().getResourceAsStream("myText.txt")