最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot獲取resources目錄下的文件

 更新時間:2024年10月31日 11:00:18   作者:pan_junbiao  
在 Spring Boot 項目中,獲取 resources 目錄中的文件路徑通常涉及到訪問類路徑資源,Spring Boot 提供了一些工具類和方法,下面小編就來和大家詳細(xì)聊聊

在 Spring Boot 項目中,獲取 resources 目錄中的文件路徑通常涉及到訪問類路徑資源(classpath resources)。Spring Boot 提供了一些工具類和方法,可以方便地訪問這些資源。以下是一些常見的方法:

首先,我們在 Spring Boot 項目中的 resources (資源文件目錄)下創(chuàng)建 file 目錄,然后在 file 目錄下創(chuàng)建 myBlog.txt 文件,并在文件中輸入內(nèi)容:您好,歡迎訪問 pan_junbiao的博客。

1、使用項目路徑

使用字符串方式寫入文件的項目路徑,這是最簡單的方式。

String path = "src/main/resources/file/myBlog.txt";
@Test
public void readFileByPath() throws IOException
{
    String path = "src/main/resources/file/myBlog.txt";
    File file = new File(path);
 
    if (file.exists())
    {
        try (BufferedReader reader = new BufferedReader(new FileReader(file)))
        {
            String line;
            while ((line = reader.readLine()) != null)
            {
                System.out.println(line);
            }
        }
    } else
    {
        System.out.println("未找到文件!");
    }
}

執(zhí)行結(jié)果:

2、使用 ApplicationContext 接口

ApplicationContext 是 Spring 框架中的一個核心接口,它是 Spring IoC 容器的實現(xiàn)之一,用于管理和組織應(yīng)用程序中的各種 Bean,同時提供了一系列功能來支持依賴注入、AOP 等特性。同時 ApplicationContext 提供了對資源的訪問能力,如文件、URL等。這通過 Resource 接口和 ResourceLoader 接口實現(xiàn),使得訪問外部資源變得簡單。

@Autowired
private ApplicationContext applicationContext;
 
@Test
public void readResourceFile() throws IOException
{
    Resource resource = applicationContext.getResource("classpath:/file/myBlog.txt");
    InputStream inputStream = resource.getInputStream();
 
    if (inputStream != null) {
        try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        }
    } else {
        System.out.println("File not found");
    }
}

3、使用 ResourceLoader 接口

ResourceLoader 是 Spring 提供的一個接口,用于加載資源。你可以在 Spring Bean 中注入 ResourceLoader,然后使用它來加載資源。

@Autowired
private ResourceLoader resourceLoader;
 
@Test
public void readFileByResourceLoader() throws IOException
{
    Resource resource = resourceLoader.getResource("classpath:/file/myBlog.txt");
    if (resource.exists())
    {
        Path path = Paths.get(resource.getURI());
        String content = new String(Files.readAllBytes(path));
        System.out.println(content);
    } else
    {
        System.out.println("未找到文件!");
    }
}

4、使用 ClassLoader 類

你也可以使用當(dāng)前類的 ClassLoader 來加載資源。ClassLoader 的 getResource 和 getResourceAsStream 方法可以訪問類路徑資源。

@Test
public void readFileByClassLoader() throws IOException
{
    ClassLoader classLoader = getClass().getClassLoader();
    InputStream inputStream = classLoader.getResourceAsStream("file/myBlog.txt");
 
    if (inputStream != null)
    {
        try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)))
        {
            String line;
            while ((line = reader.readLine()) != null)
            {
                System.out.println(line);
            }
        }
    } else
    {
        System.out.println("未找到文件!");
    }
}

5、使用 PathMatchingResourcePatternResolver 類

PathMatchingResourcePatternResolver 是 Spring 提供的一個工具類,用于解析資源路徑模式。它擴展了 ResourceLoader 的功能。

@Test
public void readFileByResourcePattern() throws IOException
{
    PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
    Resource resource = resolver.getResource("classpath:/file/myBlog.txt");
    if (resource.exists())
    {
        Path path = resource.getFile().toPath();
        String content = new String(Files.readAllBytes(path));
        System.out.println(content);
    } else
    {
        System.out.println("未找到文件!");
    }
}

注意:resource.getFile() 方法在某些情況下可能會拋出 UnsupportedOperationException,特別是在資源是從 JAR 文件中加載時。所以,更通用的方法是使用 InputStream 來讀取文件內(nèi)容。

到此這篇關(guān)于SpringBoot獲取resources目錄下的文件的文章就介紹到這了,更多相關(guān)SpringBoot獲取resources目錄下文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ThreadLocal?在上下文傳值場景實踐源碼

    ThreadLocal?在上下文傳值場景實踐源碼

    這篇文章主要為大家介紹了ThreadLocal在上下文傳值場景下的實踐源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • 基于Springboot使用logback的注意事項

    基于Springboot使用logback的注意事項

    這篇文章主要介紹了Springboot使用logback的注意事項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • spring?boot使用@Async注解解決異步多線程入庫的問題

    spring?boot使用@Async注解解決異步多線程入庫的問題

    最近在寫項目是需要添加異步操作來提高效率,所以下面這篇文章主要給大家介紹了關(guān)于spring?boot使用@Async注解解決異步多線程入庫問題的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 詳解Java進階知識注解

    詳解Java進階知識注解

    這篇文章主要介紹了詳解Java進階知識注解,從注解的定義、元注解、自定義注解、注解實例這幾個方面,讓同學(xué)們更加深入的了解注解
    2021-04-04
  • Zuul1與Spring Cloud Gateway的區(qū)別及說明

    Zuul1與Spring Cloud Gateway的區(qū)別及說明

    Zuul1基于Servlet阻塞IO,穩(wěn)定但高并發(fā)易耗盡線程;SpringCloudGateway采用非阻塞IO和Netty,性能更優(yōu)、內(nèi)置限流,適合高并發(fā)場景,兩者均支持SpringCloud集成,但Zuul1有更多生產(chǎn)落地案例
    2025-07-07
  • javaweb中ajax請求后臺servlet(實例)

    javaweb中ajax請求后臺servlet(實例)

    下面小編就為大家?guī)硪黄猨avaweb中ajax請求后臺servlet(實例)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • SpringBoot自動裝配之多數(shù)據(jù)源SDK解決Dubbo性能瓶頸詳解

    SpringBoot自動裝配之多數(shù)據(jù)源SDK解決Dubbo性能瓶頸詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot自動裝配中如何通過多數(shù)據(jù)源SDK解決Dubbo性能瓶頸,文中的示例代碼講解詳細(xì),有需要的小伙伴可以了解下
    2025-09-09
  • Java如何求交集、并集、差集

    Java如何求交集、并集、差集

    這篇文章主要介紹了Java如何求交集、并集、差集問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • java 中設(shè)計模式(值對象)的實例詳解

    java 中設(shè)計模式(值對象)的實例詳解

    這篇文章主要介紹了java 中設(shè)計模式(值對象)的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • 解決常見的Eclipse SVN插件報錯方法詳解

    解決常見的Eclipse SVN插件報錯方法詳解

    本篇文章是對常見的Eclipse SVN插件報錯方法進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評論

永丰县| 晋中市| 南漳县| 三明市| 通河县| 荥经县| 峨眉山市| 瓦房店市| 衡南县| 德格县| 长子县| 永济市| 东安县| 金沙县| 石阡县| 郎溪县| 土默特左旗| 同心县| 库车县| 合山市| 临沭县| 化德县| 巴南区| 长兴县| 荆门市| 凭祥市| 尼玛县| 栾川县| 玉门市| 宜阳县| 石城县| 临洮县| 夏河县| 高淳县| 双鸭山市| 大石桥市| 无为县| 彭山县| 普洱| 赣榆县| 扎兰屯市|