Java Servlet項目讀取文件報錯的解決方法

Java Servlet項目讀取文件報錯的解決方法

當我們創建java web項目時,每當讀取文件時寫相對路徑就會報如下錯誤
java.io.FileNotFoundException: \Font\font1.ttf (系統找不到指定的路徑。)

解決方法:

  1. 將文件的URL路徑寫成絕對路徑

此方法的弊端:
會降低項目的可移植性,不可能每次移植一個項目都要去修改裏面的源文件

  1. 創建類加載器讀取資源主目錄

調用該類的實例化對象class裏的getClassLoader().getResourceAsStream(String URL)方法來獲取ImputStream實例化對象
此時候的默認主目錄爲項目下的src文件

具體調用方法實例(假設我們的類叫做MysqlTool):

        InputStream in = MysqlTool.class.getClassLoader().getResourceAsStream("FileName");
		URL url = ServletRead.class.getClassLoader().getResource("FileName");
  1. 通過ServletContext來獲取資源主目錄
        InputStream inputStream = getServletContext().getResourceAsStream("FileName");
        URL url = getServletContext().getResource("FileName");

注意:此時的資源主目錄是web目錄下和WEB-INF目錄下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章