Java Servlet項目讀取文件報錯的解決方法
當我們創建java web項目時,每當讀取文件時寫相對路徑就會報如下錯誤
java.io.FileNotFoundException: \Font\font1.ttf (系統找不到指定的路徑。)
解決方法:
- 將文件的URL路徑寫成絕對路徑
此方法的弊端:
會降低項目的可移植性,不可能每次移植一個項目都要去修改裏面的源文件
- 創建類加載器讀取資源主目錄
調用該類的實例化對象class裏的getClassLoader().getResourceAsStream(String URL)方法來獲取ImputStream實例化對象
此時候的默認主目錄爲項目下的src文件
具體調用方法實例(假設我們的類叫做MysqlTool):
InputStream in = MysqlTool.class.getClassLoader().getResourceAsStream("FileName");
URL url = ServletRead.class.getClassLoader().getResource("FileName");
- 通過ServletContext來獲取資源主目錄
InputStream inputStream = getServletContext().getResourceAsStream("FileName");
URL url = getServletContext().getResource("FileName");
注意:此時的資源主目錄是web目錄下和WEB-INF目錄下