Java中關(guān)于文件路徑讀取問題的分析
Java讀取文件路徑
記錄一種通用獲取文件絕對路徑的方法,即使代碼換了位置了,這樣編寫也是通用的:
注意:
使用以下方法的前提是文件必須在類路徑下,類路徑:凡是在src下的都是類路徑。

1.拿到User.properties文件的絕對路徑:

package com.lxc.domain;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
public class Test {
public static void main(String[] args) {
try {
/**
* Thread.currentThread() 當(dāng)前線程對象
* getContextClassLoader() 線程方法,獲取的是當(dāng)前線程的類加載器對象
* getResource("") 這是類加載器對象的方法,當(dāng)前線程的類加載器默認(rèn)從類的根路徑下加載資源
*
*/
String path = Thread.currentThread().getContextClassLoader().getResource("User.properties").getPath();
System.out.println(path);
FileReader reader = new FileReader(path);
}
}

2.還可以以流的方式直接獲取到文件流,直接加載
![]()
package com.lxc.domain;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class Fanshe {
public static void main(String[] args) {
// 以流的方式讀取
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("com/lxc/domain/userProperties.properties");
Properties properties = new Properties();
try {
properties.load(inputStream);
inputStream.close();
System.out.println(properties.getProperty("username"));
} catch (IOException e) {
e.printStackTrace();
}
}
}

這里還要注意一個小點(diǎn):
資源配置文件放到resource文件夾下和放到包路徑下,打包編譯之后資源文件的存放位置會不一樣,放到resource文件夾下打包編譯值后的位置在classes文件夾下:

放到包文件夾,打包編譯值后的位置在相應(yīng)的包下:

3.通過資源綁定器獲取到資源文件信息
使用資源綁定器獲取資源文件信息,前提:
(1)資源文件必須在類路徑下,如果不在resource文件夾下,而是在包下,處理方式如下;
(2)參數(shù)不需要帶后綴

package com.lxc.domain;
import java.util.ResourceBundle;
public class Fanshe {
public static void main(String[] args) {
ResourceBundle resourceBundle = ResourceBundle.getBundle("User");
String username = resourceBundle.getString("username");
System.out.println(username);
}

如果在包文件夾下,路徑應(yīng)該這樣寫:
package com.lxc.domain;
import java.util.ResourceBundle;
public class Fanshe {
public static void main(String[] args) {
ResourceBundle resourceBundle = ResourceBundle.getBundle("com/lxc/domain/User");
String username = resourceBundle.getString("username");
System.out.println(username);
}
}
![]()
到此這篇關(guān)于Java中關(guān)于文件路徑讀取問題的分析的文章就介紹到這了,更多相關(guān)Java讀取文件路徑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java Spring5學(xué)習(xí)之JdbcTemplate詳解
這篇文章主要介紹了Java Spring5學(xué)習(xí)之JdbcTemplate詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-05-05
springboot?使用websocket技術(shù)主動給前端發(fā)送消息的實現(xiàn)
這篇文章主要介紹了springboot?使用websocket技術(shù)主動給前端發(fā)送消息的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
關(guān)于Mybatis 中使用Mysql存儲過程的方法
這篇文章給大家介紹了Mybatis 中使用Mysql存儲過程的方法,本文通過實例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友參考下吧2018-03-03
Springcloud hystrix服務(wù)熔斷和dashboard如何實現(xiàn)
這篇文章主要介紹了Springcloud hystrix服務(wù)熔斷和dashboard如何實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-12-12

