IDEA如何加載resources文件夾下文件相對(duì)路徑
IDEA加載resources文件夾下文件相對(duì)路徑
今天碰到了一個(gè)加載文件的相對(duì)路徑問題
出現(xiàn)異常
如下:

目錄結(jié)構(gòu)

讀取文件
的代碼如下:
public void load(String path) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(path));
String line = "";
while ((line = br.readLine()) != null) {
m_tbl.put(Integer.parseInt(line), true);
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}正斜杠,反斜杠,正反雙斜杠,還有加上上一級(jí)目錄我都試過(guò)。。。
最后運(yùn)行出來(lái)的都是一個(gè)反斜杠,實(shí)在是傷腦筋,而且這段代碼在 eclipse 下運(yùn)行沒問題,我拷貝到 idea 下的 resources 文件夾下了就報(bào)異常。
后來(lái)研究之后得出下面兩種解決方案:
1、采用絕對(duì)路徑;
2、還是使用相對(duì)路徑,這時(shí)用類加載器加載文件路徑。
代碼如下:
public void load(String path) {
BufferedReader br = null;
try {
InputStream in = SetTable.class.getClassLoader().getResourceAsStream(path);
br = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String line = "";
while ((line = br.readLine()) != null) {
m_tbl.put(Integer.parseInt(line), true);
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}InputStreamReader 相比于 FileReader 還有一個(gè)優(yōu)勢(shì)是 可以設(shè)置編碼。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java中不同版本JSONObject區(qū)別小結(jié)
本文主要介紹了java中不同版本JSONObject區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
基于Spring Batch向Elasticsearch批量導(dǎo)入數(shù)據(jù)示例
本文介紹了基于Spring Batch向Elasticsearch批量導(dǎo)入數(shù)據(jù)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
java實(shí)現(xiàn)斐波那契數(shù)列的3種方法
這篇文章主要介紹了java實(shí)現(xiàn)斐波那契數(shù)列的3種方法,有需要的朋友可以參考一下2014-01-01
Spring Cloud入門教程之Zuul實(shí)現(xiàn)API網(wǎng)關(guān)與請(qǐng)求過(guò)濾
這篇文章主要給大家介紹了關(guān)于Spring Cloud入門教程之Zuul實(shí)現(xiàn)API網(wǎng)關(guān)與請(qǐng)求過(guò)濾的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-05-05
idea中設(shè)置文件不進(jìn)行g(shù)it commit問題及解決
文章介紹了在開發(fā)過(guò)程中如何使用 IntelliJ IDEA 的更改列表(changeList)功能來(lái)管理本地修改的文件,使其不會(huì)被提交到遠(yuǎn)程倉(cāng)庫(kù),通過(guò)創(chuàng)建一個(gè)新的更改列表并將其標(biāo)記為不提交,可以有效地隔離本地修改和遠(yuǎn)程倉(cāng)庫(kù)的代碼,從而避免不必要的提交和潛在的錯(cuò)誤2025-10-10
java swing實(shí)現(xiàn)簡(jiǎn)單計(jì)算器界面
這篇文章主要為大家詳細(xì)介紹了java swing實(shí)現(xiàn)簡(jiǎn)單計(jì)算器界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04

