首页 > 其他分享 >介绍5种从resources获取inputStream的方法

介绍5种从resources获取inputStream的方法

时间:2025-01-16 16:32:26浏览次数:1  
标签:ClassPathResource 文件 inputStream 获取 资源 test InputStream resources 加载

在大多数情况下,推荐使用ResourceLoader或ClassPathResource来加载资源文件。

@Component
@Slf4j
public class TestFileService {

    @Autowired
    private ResourceLoader resourceLoader;

    @PostConstruct
    public void testInputStream() throws IOException {

        /*
         * 使用ClassLoader.getResourceAsStream()方法:
         * 通过类加载器获取资源文件的输入流。
         * 方法接受一个资源文件路径参数,返回一个InputStream对象。
         * 注意:该方法返回的资源文件路径是相对于类加载器的根路径,对于resources目录下的文件,通常不需要加前缀。
         */
        InputStream inputStream1 = this.getClass().getClassLoader().getResourceAsStream("test_files/test_file.txt");

        /*
         * 使用Class.getResourceAsStream()方法:
         * 通过Class类的getResourceAsStream()方法读取资源文件。
         * 方法同样接受一个资源文件路径参数,返回一个InputStream对象。
         * 注意:该方法返回的资源文件路径是相对于当前类的路径,因此对于resources目录下的文件,需要在文件名前加上“/”前缀。
         */
        InputStream inputStream2 = this.getClass().getResourceAsStream("/test_files/test_file.txt");

        /*
         * 使用ResourceLoader加载文件:
         * ResourceLoader是Spring框架提供的一个接口,用于加载资源文件。
         * 可以在类中注入ResourceLoader对象,并使用其getResource()方法获取资源文件的Resource对象,然后调用getInputStream()方法获取输入流。
         * 注意:传入资源文件的相对路径可加可不加“/”前缀
         */
        Resource resource = resourceLoader.getResource("classpath:test_files/test_file.txt");
        InputStream inputStream3 = resource.getInputStream();

        /*
         * 使用ClassPathResource加载文件:
         * ClassPathResource是Spring框架提供的一个类,用于从类路径下查找资源文件。
         * 可以直接创建ClassPathResource对象,并传入资源文件的相对路径【文件名前可加可不加“/”前缀】,然后调用getInputStream()方法获取输入流。
         */
        ClassPathResource classPathResource1 = new ClassPathResource("test_files/test_file.txt");
        ClassPathResource classPathResource2 = new ClassPathResource("/test_files/test_file.txt");
        InputStream inputStream4 = classPathResource1.getInputStream();

        /*
         * 使用ResourceUtils加载文件:
         * ResourceUtils是Spring提供的一个工具类,用于加载资源文件。
         * 可以使用ResourceUtils.getFile()方法来获取文件对象,但需要注意该方法只适用于本地文件系统和JAR文件,对于WAR文件或其他类型的文件可能无法正常工作。
         * 注意:传入资源文件的相对路径不加“/”前缀
         */
        File file1 = ResourceUtils.getFile("classpath:test_files/test_file.txt");
        InputStream inputStream5 = Files.newInputStream(file1.toPath());

        log.info("1");
    }
}

标签:ClassPathResource,文件,inputStream,获取,资源,test,InputStream,resources,加载
From: https://www.cnblogs.com/jspider/p/18675233

相关文章

  • 使用Python爬虫获取1688网站item_get_company API接口的公司档案信息
    一、引言在当今的商业环境中,获取供应商的详细信息对于采购决策、市场分析和供应链管理至关重要。1688作为中国领先的B2B电子商务平台,提供了丰富的供应商档案信息。通过使用1688的item_get_companyAPI接口,我们可以方便地获取这些信息。本文将详细介绍如何使用Python爬虫来调用该A......
  • 使用Python爬虫获取1688网站实力档案信息
    引言1688是阿里巴巴旗下的B2B电子商务平台,提供了丰富的商品和供应商信息。为了获取供应商的实力档案信息,我们可以使用1688的API接口item_get_strength。本文将详细介绍如何使用Python爬虫来调用该API并获取所需信息。环境准备在开始之前,请确保你的系统已经安装了以下工具和库:......
  • 微信小程序获取openid
    2025年1月15日:注意:其中appid,secret,还有服务器网址都按自己实际的填写1、先在云服务器上安装nodejs,然后写个get接口:constexpress=require('express');constapp=express();app.get('/getOpenid',(req,res)=>{res.send("success");})app.listen(3000,()=>......
  • C# NAudio 获取控制系统音量
    https://github.com/naudio/NAudioNAudio是一个开源的.NET音频库,由MarkHeath开发,开源地址:https://github.com/naudio/NAudio支持多种音频操作,可实现多种API播放与录制、多种不同音频格式、音频格式转换(重采样、位深、声道等)、音频编码、多通道播放、音频效果处理等等。NA......
  • vue2子组件获取父组件的实例以及数据,vue2子组件获取父组件的数据
    多个组件引入同一个js文件,实例化对象,数据不会错乱,再引入相同的组件,例如每个页面都需要引入到一个分页组件,然后分页组件需要获取各自父组件中的实例对象通过  this.$parent 即可获取到父组件中的数据所以在使用子组件时可以不用在组件上传入数据 公共js文件functionda......
  • HTML应用指南:利用GET请求获取微博用户特定标签的文章内容
    本篇文章,我们将探究GET请求的实际应用,我们使用Python的requests库通过GET请求抓取微博网页版(https://weibo.com/)的用户发布内容,因为微博整体使用的也是GET请求形式。随着城市化进程的加速,公共交通系统在人们的日常生活中扮演着越来越重要的角色。地铁作为大中型城市的主要......
  • 利用 Java 爬虫获取 1688 商品评论的实践指南
    在电商领域,商品评论是消费者决策的重要参考因素,同时也是商家了解产品反馈、优化服务的关键数据来源。1688作为国内知名的B2B电商平台,拥有海量的商品评论数据。本文将详细介绍如何利用Java爬虫技术获取1688商品评论,并提供代码示例,帮助读者快速上手。一、项目背景与目标......
  • 获取阿里巴巴商品详情的高效途径:API调用与代码示例
    在当今电商蓬勃发展的时代,阿里巴巴作为全球知名的B2B平台,汇聚了海量的商品信息。对于开发者和商家而言,能够精准、高效地获取这些商品详情数据,无疑将为业务拓展和决策提供强大助力。本文将为您详细解读如何通过阿里巴巴开放平台API获取商品详情,并附上实用的代码示例,助您轻松上手......
  • UNI-APP 获取用户手机号授权与服务器端处理指南
    在UNI-APP中,获取用户手机号的流程通常涉及到微信小程序的授权机制。以下是实现步骤:1.配置小程序权限首先,确保在微信小程序的管理后台已经开启了获取用户手机号的权限。2.使用button​组件在UNI-APP中,你可以使用button​组件来触发获取用户手机号的操作......
  • UNI-APP 获取用户手机号授权与服务器端处理指南
    在UNI-APP中,获取用户手机号的流程通常涉及到微信小程序的授权机制。以下是实现步骤:1.配置小程序权限首先,确保在微信小程序的管理后台已经开启了获取用户手机号的权限。2.使用button​组件在UNI-APP中,你可以使用button​组件来触发获取用户手机号的操作......