首頁  >  文章  >  Java  >  springboot專案怎麼讀取resources目錄下的文件

springboot專案怎麼讀取resources目錄下的文件

WBOY
WBOY轉載
2023-05-19 08:29:201242瀏覽

1: 使用 ClassLoader.getResourceAsStream() 方法

可以使用類別載入器來取得資源檔案的輸入流。這個方法需要傳入一個資源檔案路徑作為參數,然後會傳回一個 InputStream 物件。

InputStream inputStream = getClass().getClassLoader().getResourceAsStream("file.txt");

注意,此方法傳回的資源檔案路徑是相對於類別載入器的根路徑。因此,對於 resources 目錄下的文件,需要在文件名稱前加上 “classpath:” 前綴。例如: “classpath:file.txt”。

2: 使用 Class.getResourceAsStream() 方法

要讀取資源文件,可以使用 Class 類別的 getResourceAsStream() 方法。這個方法需要輸入一個資源檔案的路徑,然後會傳回一個 InputStream 物件。

InputStream inputStream = getClass().getResourceAsStream("/file.txt");

此方法傳回的資源檔案路徑是相對於目前類別的路徑。因此,對於 resources 目錄下的文件,需要在文件名稱前加上 “/” 前綴。例如: “/file.txt”。

3: 使用 ResourceLoader 載入檔案

使用Spring的ResourceLoader介面能夠載入資源檔案。 ResourceLoader 介面有一個 getResource() 方法,接受一個資源檔案路徑參數,傳回一個 Resource 物件。

Resource resource = resourceLoader.getResource("classpath:file.txt");
InputStream inputStream = resource.getInputStream();

要注意的是:需要在類別中註入 ResourceLoader 對象,並在方法中使用。例如:

@Autowired
private ResourceLoader resourceLoader;

public void readResourceFile() throws IOException {
    Resource resource = resourceLoader.getResource("classpath:file.txt");
    InputStream inputStream = resource.getInputStream();
}

4: 使用 ResourceUtils 載入檔案

Spring 提供 ResourceUtils 工具類,可用於資源檔案載入。取得文件物件可使用 ResourceUtils.getFile() 方法。

File file = ResourceUtils.getFile("classpath:file.txt");

要注意的是:該方法只適用於本機檔案系統和 JAR 檔案。這個方法可能在處理 WAR 檔案或其他類型檔案時失效。

5: 使用 ApplicationContext 載入文件

要載入資源文件,可以使用 ApplicationContext 中的 getResource() 方法。接受一個資源檔案路徑作為參數,傳回一個 Resource 物件的方法。

Resource resource = applicationContext.getResource("classpath:file.txt");
InputStream inputStream = resource.getInputStream();

要注意的是:需要在類別中註入 ApplicationContext 對象,並在方法中使用。例如:

@Autowired
private ApplicationContext applicationContext;

public void readResourceFile() throws IOException {
    Resource resource = applicationContext.getResource("classpath:file.txt");
    InputStream inputStream = resource.getInputStream();
}

6: 使用 ServletContext 載入檔案

可以使用 ServletContext 的 getResourceAsStream() 方法讀取資源檔案。此函數的參數為資源檔案路徑,傳回一個 InputStream 物件。

InputStream inputStream = servletContext.getResourceAsStream("/WEB-INF/classes/file.txt");

要注意的是:需要在類別中註入 ServletContext 對象,並在方法中使用。例如:

@Autowired
private ServletContext servletContext;

public void readResourceFile() throws IOException {
    InputStream inputStream = servletContext.getResourceAsStream("/WEB-INF/classes/file.txt");
}

7: 使用 File System 載入檔案

可以使用 File 類別來讀取資源檔案。需要提供完整的文件路徑。

File file = new File("src/main/resources/file.txt");
InputStream inputStream = new FileInputStream(file);

要注意的是:使用該方法需要提供完整的檔案路徑,因此需要知道檔案所在的絕對路徑。

8: 使用 Paths 和 Files 載入檔案

在Java NIO中,可以藉助Paths和Files類別讀取資源檔案。該方法需要提供完整的檔案路徑。

Path path = Paths.get("src/main/resources/file.txt");
InputStream inputStream = Files.newInputStream(path);

要注意的是,使用該方法需要提供完整的檔案路徑,因此需要知道檔案所在的絕對路徑。

9: 使用 ClassPathResource 載入檔案

使用 Spring 提供的 ClassPathResource 類,能夠讀取資源檔案。此方法需要提供資源檔案的相對路徑。

ClassPathResource resource = new ClassPathResource("file.txt");
InputStream inputStream = resource.getInputStream();

要注意的是:ClassPathResource 會在類別路徑下尋找資源文件,因此不需要提供完整的文件路徑。

以上是springboot專案怎麼讀取resources目錄下的文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除