詳解Spring boot操作文件的多種方式
一、獲取文件路徑
獲取文件路徑
1、class.getResource(path)
其中的參數(shù)path有兩種形式,一種是以“/”開頭的,另一種是不以"/"開頭;
- 「以'/'開頭的表示」:從項目的根路徑下去獲取文件即classPath目錄下。
- 不以"/"開頭:以該類對象所在位置**為根路徑來進行查找的。
// 1.獲取當前文件所在的路徑
System.out.println(this.getClass().getResource("").getPath());
// 2.獲取再 target 下 classpath 路徑
System.out.println(this.getClass().getResource("/").getPath());

class.getResource()和class.getResourceAsStream()方式的使用在路徑上是一致的。
2、ClassLoader.getResource(path)
// 3.也是獲取 classpath 的絕對路徑
System.out.println(Thread.currentThread().getContextClassLoader().getResource("").getPath());
// 4.也是獲取 classpath 的絕對路徑
System.out.println(this.getClass().getClassLoader().getResource("").getPath());
// 5.也是獲取 classpath 的絕對路徑
System.out.println(ClassLoader.getSystemResource("").getPath());

3、項目路徑
//6.獲取當前項目路徑(此方法與 7 效果相同,但是可以將路徑轉(zhuǎn)為標準形式,會處理"."和"..")
System.out.println(new File("").getCanonicalPath());
// 7.獲取項目絕對路徑(不會處理"."和"..")
System.out.println(new File("").getAbsolutePath());
//8.user.dir
System.out.println(System.getProperty("user.dir"));

二、操作文件的三種方式
1、ClassPath
讀取resources下配置文件【文件只能為Properties、xml、JSON】
//讀取 ClassPath 下的文件信息
//1、類加載器
InputStream resourceAsStream = DaoFactory.class.getClassLoader().getResourceAsStream("data.properties");
//2、當前線程加載器
lassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream is = classLoader.getResourceAsStream(path);
2、FileSystem
指定文件路徑的方式讀取文件信息,讀取resources下static文件夾中的文件
String path = Thread.currentThread().getContextClassLoader().getResource("static/internal.csv").getPath();
File file = new File(path);
3、UrlResource
通過 HTTP 的方式讀取云服務的文件,我們也可以把配置文件放到 GitHub 或者 Gitee 上。
URLConnection con = this.url.openConnection(); InputStream inputStream = con.getInputStream(); String content = IoUtil.readUtf8(inputStream); System.out.println(content);
到此這篇關于Spring boot操作文件的幾種方式的文章就介紹到這了,更多相關Spring boot操作文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MyBatis-Plus 集成動態(tài)多數(shù)據(jù)源的實現(xiàn)示例
本文主要介紹了MyBatis-Plus 集成動態(tài)多數(shù)據(jù)源的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07
springboot讀取resource配置文件生成容器對象的示例代碼
這篇文章主要介紹了springboot讀取resource配置文件生成容器對象的示例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
springboot+dynamicDataSource動態(tài)添加切換數(shù)據(jù)源方式
這篇文章主要介紹了springboot+dynamicDataSource動態(tài)添加切換數(shù)據(jù)源方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Java編程中利用InetAddress類確定特殊IP地址的方法
這篇文章主要介紹了Java編程中利用InetAddress類確定特殊IP地址的方法,InetAddress類是Java網(wǎng)絡編程中一個相當實用的類,需要的朋友可以參考下2015-11-11

