詳解Spring boot操作文件的多種方式

一、獲取文件路徑

獲取文件路徑

1、class.getResource(path)

其中的參數path有兩種形式,一種是以“/”開頭的,另一種是不以”/”開頭;

  • 「以’/’開頭的表示」:從項目的根路徑下去獲取文件即classPath目錄下。
  • 不以”/”開頭:以該類對象所在位置**為根路徑來進行查找的。
// 1.獲取當前文件所在的路徑
System.out.println(this.getClass().getResource("").getPath());
// 2.獲取再 target 下 classpath 路徑
System.out.println(this.getClass().getResource("/").getPath());

img

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());

img

3、項目路徑

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

img

二、操作文件的三種方式

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操作文件內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: