一、獲取文件路徑
獲取文件路徑
1、class.getResource(path)
其中的參數(shù)path有兩種形式,一種是以“/”開頭的,另一種是不以"/"開頭;
- 「以"/"開頭的表示」:從項(xiàng)目的根路徑下去獲取文件即classPath目錄下。
- 不以"/"開頭:以該類對(duì)象所在位置**為根路徑來進(jìn)行查找的。
// 1.獲取當(dāng)前文件所在的路徑 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 的絕對(duì)路徑 System.out.println(Thread.currentThread().getContextClassLoader().getResource("").getPath()); // 4.也是獲取 classpath 的絕對(duì)路徑 System.out.println(this.getClass().getClassLoader().getResource("").getPath()); // 5.也是獲取 classpath 的絕對(duì)路徑 System.out.println(ClassLoader.getSystemResource("").getPath());
3、項(xiàng)目路徑
//6.獲取當(dāng)前項(xiàng)目路徑(此方法與 7 效果相同,但是可以將路徑轉(zhuǎn)為標(biāo)準(zhǔn)形式,會(huì)處理"."和"..") System.out.println(new File("").getCanonicalPath()); // 7.獲取項(xiàng)目絕對(duì)路徑(不會(huì)處理"."和"..") 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、當(dāng)前線程加載器 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 的方式讀取云服務(wù)的文件,我們也可以把配置文件放到 GitHub 或者 Gitee 上。
URLConnection con = this.url.openConnection(); InputStream inputStream = con.getInputStream(); String content = IoUtil.readUtf8(inputStream); System.out.println(content);
到此這篇關(guān)于Spring boot操作文件的幾種方式的文章就介紹到這了,更多相關(guān)Spring boot操作文件內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/qq_42219004/article/details/121079539