正常在Java工程中讀取某路徑下的文件時,可以採用絕對路徑和相對路徑,絕對路徑沒什麼好說的,相對路徑,即相對於當前類的路徑。在本地工程和伺服器中讀取文件的方式有所不同,以下圖配置文件為例。 本地讀取資源文件 java類中需要讀取properties中的配置文件,可以採用文件(File)方式進行讀取: ...
正常在Java工程中讀取某路徑下的文件時,可以採用絕對路徑和相對路徑,絕對路徑沒什麼好說的,相對路徑,即相對於當前類的路徑。在本地工程和伺服器中讀取文件的方式有所不同,以下圖配置文件為例。
本地讀取資源文件
java類中需要讀取properties中的配置文件,可以採用文件(File)方式進行讀取:
1 File file = new File("src/main/resources/properties/basecom.properties"); 2 InputStream in = new FileInputStream(file);
當在eclipse中運行(不部署到伺服器上),可以讀取到文件。
伺服器(Tomcat)讀取資源文件
當工程部署到Tomcat中時,按照上邊方式,則會出現找不到該文件路徑的異常。經搜索資料知道,Java工程打包部署到Tomcat中時,properties的路徑變到頂層(classes下):
並且,此時讀取文件需要採用流(stream)的方式讀取,如下:
1 InputStream in = this.getClass().getResourceAsStream("/properties/basecom.properties");
其中properties前的斜杠,相對於調用類,共同的頂層路徑。
參考:
Resource from src/main/resources not found after building with maven
[Java] 在 jar 文件中讀取 resources 目錄下的文件