SpringBoot 读取项目中静态资源文件

这篇具有很好参考价值的文章主要介绍了SpringBoot 读取项目中静态资源文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一. ClassPathResource

import org.springframework.core.io.ClassPathResource;
import java.io.File;
import java.io.InputStream;

public void run(String... args) throws Exception {

	// 读取本地的文件
    String filePath = "/temp/A110120119/测试文件.text";
    ClassPathResource readFile = new ClassPathResource(filePath);

    // 获取文件对象
    File file = readFile.getFile();
    System.out.println(file.getName());

    // 获取文件流
    InputStream inputStream = readFile.getInputStream();
}

SpringBoot 读取项目中静态资源文件


二. DefaultResourceLoader

import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.ResourceLoader;
import org.springframework.util.FileCopyUtils;

public void run(String... args) throws Exception {

	// 本地静态资源路径
    String filePath = "/temp/A110120119/测试文件.text";
    ResourceLoader resourceLoader = new DefaultResourceLoader();

    // 读取本地静态资源
    File orgFile = resourceLoader.getResource(filePath).getFile();
    System.out.println("本地静态资源的文件名为:" + orgFile.getName());
    // 创建临时文件(此时为空)
    File tempFile  = File.createTempFile("拷贝测试文件", ".text");

    // 将本地静态资源内容复制到创建的临时文件中
    FileCopyUtils.copy(orgFile, tempFile);

    // 读取临时文件中的所有内容并打印
    Files.readAllLines(tempFile.toPath()).forEach(System.out::println);
}

SpringBoot 读取项目中静态资源文件


三. PathMatchingResourcePatternResolver

PathMatchingResourcePatternResolver是一个Ant模式通配符的Resource查找器,可以用来查找类路径下或者文件系统中的资源。

import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;

public void run(String... args) throws Exception {

    ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();

	// 本地静态资源路径
    String filePath = "/temp/A110120119/测试文件.text";
    // 获取指定路径下的资源文件
    Resource resource = resourcePatternResolver.getResource(filePath);
    System.out.println(resource.getFilename());
    System.out.println("-----------------------------------------------");

    // 获取temp文件夹下,所有文件夹中以 .text 为后缀的所有文件
    Resource[] resources = resourcePatternResolver.getResources("/temp/**/*.text");
    for (Resource resourceFile : resources) {
        System.out.println(resourceFile.getFilename());
    }
    System.out.println("-----------------------------------------------");
	
	// 获取本地磁盘中的资源文件路径
    Resource osFile = resourcePatternResolver.getResource("E:/写真/jojo/下载.png");
    System.out.println(osFile.getFilename());
}

SpringBoot 读取项目中静态资源文件


四. ResourceUtils

❗❗❗在SpringBoot中尽量避免使用ResourceUtils读取资源文件。ResourceUtils.getFile()获取的是资源文件的绝对路径,当项目打包为jar或者war包之后部署,资源文件的绝对路径改变,因此会报错。

import org.springframework.util.ResourceUtils;

public void run(String... args) throws Exception {

	// 本地静态资源路径
    String filePath = "/temp/A110120119/测试文件.text";

    File file = ResourceUtils.getFile(filePath);
    System.out.println(file.getName());
}

SpringBoot 读取项目中静态资源文件


参考资料文章来源地址https://www.toymoban.com/news/detail-470242.html

  1. Springboot 生产环境下读取Resource下的文件
  2. SpringBoot不要使用ResourceUtils读取资源文件

到了这里,关于SpringBoot 读取项目中静态资源文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 当visual studio资源管理器不显示头文件、源文件、依赖文件,解决办法(多种)

    1、当visual studio资源管理器不显示头文件、源文件、依赖文件belike:  我想要的belike: 1、普通卡bug了 2、xxx.vcxproj.filters文件损坏或删除,该文件是文件过滤器 解决方法1、新建解决方案资源管理器视图 右击解决方案--新建新建解决方案资源管理器视图  多试几次有些有用 解决

    2024年02月08日
    浏览(49)
  • springboot 项目访问静态资源遇到的问题,WebMvcConfigurer和WebMvcConfigurationSupport

    之前发过通过继承WebMvcConfigurationSupport来访问静态资源的文章——img标签访问静态资源,代码如下 这个方法是可行的,但会带来一个小问题。 像这些本身就要访问静态资源的,它们一般是实现了WebMvcConfigurer,而不是继承WebMvcConfigurationSupport。 当我们用上面代码中的方法访问

    2024年01月21日
    浏览(60)
  • Flask项目打包为exe(附带项目资源,静态文件)

    运行以下命令来使用 PyInstaller 根据 my_app.spec 文件打包flask应用程序:

    2024年02月14日
    浏览(37)
  • 10SpringBoot 静态资源访问 11Springboot的默认配置文件和外部配置文件及加载顺序

            做web开发的时候,我们往往会有很多静态资源,如html、图片、css等。那如何向前端返回静态资源呢?        以前做过web开发的同学应该知道,我们以前创建的web工程下面会有一个webapp的目录,我们只要把静态资源放在该目录下就可以直接访问。        但是,基

    2023年04月08日
    浏览(59)
  • SpringBoot项目打成jar包后,上传的静态资源(图片等)如何存储和访问

    使用springboot开发一个项目,开发文件上传的时候,通常会将上传的文件存储到资源目录下的static里面,然后在本地测试上传文件功能没有问题,但是将项目打成jar包放到服务器上运行的时候就会报错,找不到对应目录。或者可以将上传文件存储到和jar包同级的目录下,但是无

    2024年02月12日
    浏览(61)
  • vue项目中下载静态资源里的pdf文件

    1.把文件放在项目目录src/assets文件下 2.在项目是用a标签下载 以上项目运行会报错 Failed to compile. ./src/assets/download.pdf 1:0 Module parse failed: Unexpected token (1:0) You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#load

    2024年02月20日
    浏览(45)
  • vue前端获取项目下的静态资源文件夹中的文件并下载

    前端项目/public/static/image文件夹下,两张图片,因为不会经常改变所以做成静态资源 从项目中获取这两张图片 html: 前端项目的 publicstaticfaultFile文件夹中放入模板文件: 实现效果: 代码: 前端下载使用 a 标签的自带的download下载 参考文章:require.context()的用法详解

    2024年02月12日
    浏览(79)
  • 解决java普通项目读取不到resouces目录下资源文件的办法

    现象如下:  可以看到resources目录已经在idea中标记成了资源目录resources root,而且target/classes目录下也编译出了resources目录下的pci.properties文件,换句话说:java在编译时是读取到了resources下的文件的。 可是为什么new File以后做路径判断时为什么返回false,找不到文件呢? 这里

    2024年02月09日
    浏览(47)
  • SpringBoot -05 SpringBoot web相关配置(静态资源访问、统一异常处理、文件上传、拦截器、统一跨域请求处理)

    小总结 SpringBoot是一个基于Spring的工具集,去帮我们完成了大量的配置。在SpringBoot中有一个约定大于配置的概念,就是他把我们很多第三方框架帮我们写好了,而且把我们整个第三方框架所需要的依赖全都通过起步依赖加进去了。开发中只需要加入起步依赖就可以实现某个场

    2024年02月01日
    浏览(45)
  • Springboot读取外部配置文件,项目部署时配置读取不到问题

    需求: 最近项目部署,但是每个地方都有个别地方配置的差异,我们每次打包后再进行修改极度不方便,这里将有关的配置都抽取出来,放在jar包外进行配置,这样以后更新时只需要将jar包更换然后重启即可,配置读取外部的固定配置文件。 SpringBoot 配置 springboot默认配置的

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包