第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

下面幾種相對路徑都不對:不知道怎么回事?

下面幾種相對路徑都不對:不知道怎么回事?

慕娘9325324 2022-10-11 14:11:41
servlet程序打成一個war,war名叫'test.war',我想訪問test.war包中的setting.properties文件,那應(yīng)該寫的相對路徑是什么?為什么我怎么寫都不對?(寫絕對路徑是OK的)test.war的目錄結(jié)構(gòu)為:WEB-INF  classes  lib  setting.properties  web.xmlJava代碼  FileInputStream is = new FileInputStream("/test/WEB-INF/setting.properties");//不行  FileInputStream is = new FileInputStream("/WEB-INF/setting.properties");//不行  FileInputStream is = new FileInputStream("setting.properties");//不行  FileInputStream is = new FileInputStream("D:\\workspace\\test\\WebContent\\WEB-INF\\setting.properties"); //Ok
查看完整描述

2 回答

?
慕斯王

TA貢獻1864條經(jīng)驗 獲得超2個贊

FileInputStream只能定位絕對路徑,所以你填入相對路徑當然找不到。

讀取資源文件一般根據(jù)上下文環(huán)境分為兩種情況。

第一種是非WEB應(yīng)用的環(huán)境中,只需要簡單的通過類加載器的getResourceAsStream方法讀取。
例如,classpath根目錄下有一個setting.properties文件,可以這樣讀取

Java代碼  

  1. InputStream is = Thread.currentThread().getClass().getResourceAsStream("/setting.properties");  

第二種是WEB應(yīng)用的環(huán)境中,因為應(yīng)用包含在了Servlet 容器中,所以情況相對來說要復(fù)雜一些。
同上一樣,讀取classpath中的資源,依然通過類加載讀取,但是通過上下文的類加載器中去讀。
例如,

Java代碼  

  1. InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("/setting.properties");  

讀取WebContent目錄中的情況又不一樣了,不能通過類加載器讀取,需要通過ServletContext去讀。
例如,

Java代碼  

  1. InputStream is = request.getServletContext().getResourceAsStream("/WEB-INF/setting.properties");  

查看完整回答
反對 回復(fù) 2022-10-16
?
呼如林

TA貢獻1798條經(jīng)驗 獲得超3個贊

第二種換成\\可以嗎?

Java代碼  

  1. \\WEB-INF\\setting.properties  

或者用classpath:xxxxxx試試看


查看完整回答
反對 回復(fù) 2022-10-16
  • 2 回答
  • 0 關(guān)注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號