可以使用類別載入器來取得資源檔案的輸入流。這個方法需要傳入一個資源檔案路徑作為參數,然後會傳回一個 InputStream 物件。
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("file.txt");
注意,此方法傳回的資源檔案路徑是相對於類別載入器的根路徑。因此,對於 resources 目錄下的文件,需要在文件名稱前加上 “classpath:” 前綴。例如: “classpath:file.txt”。
要讀取資源文件,可以使用 Class 類別的 getResourceAsStream() 方法。這個方法需要輸入一個資源檔案的路徑,然後會傳回一個 InputStream 物件。
InputStream inputStream = getClass().getResourceAsStream("/file.txt");
此方法傳回的資源檔案路徑是相對於目前類別的路徑。因此,對於 resources 目錄下的文件,需要在文件名稱前加上 “/” 前綴。例如: “/file.txt”。
使用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(); }
Spring 提供 ResourceUtils 工具類,可用於資源檔案載入。取得文件物件可使用 ResourceUtils.getFile() 方法。
File file = ResourceUtils.getFile("classpath:file.txt");
要注意的是:該方法只適用於本機檔案系統和 JAR 檔案。這個方法可能在處理 WAR 檔案或其他類型檔案時失效。
要載入資源文件,可以使用 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(); }
可以使用 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"); }
可以使用 File 類別來讀取資源檔案。需要提供完整的文件路徑。
File file = new File("src/main/resources/file.txt"); InputStream inputStream = new FileInputStream(file);
要注意的是:使用該方法需要提供完整的檔案路徑,因此需要知道檔案所在的絕對路徑。
在Java NIO中,可以藉助Paths和Files類別讀取資源檔案。該方法需要提供完整的檔案路徑。
Path path = Paths.get("src/main/resources/file.txt"); InputStream inputStream = Files.newInputStream(path);
要注意的是,使用該方法需要提供完整的檔案路徑,因此需要知道檔案所在的絕對路徑。
使用 Spring 提供的 ClassPathResource 類,能夠讀取資源檔案。此方法需要提供資源檔案的相對路徑。
ClassPathResource resource = new ClassPathResource("file.txt"); InputStream inputStream = resource.getInputStream();
要注意的是:ClassPathResource 會在類別路徑下尋找資源文件,因此不需要提供完整的文件路徑。
以上是springboot專案怎麼讀取resources目錄下的文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!