zoukankan      html  css  js  c++  java
  • SpringBoot中读取Resource下文件的方法

    最近做一个项目,直接在Resource目录下放了一个test.png文件,在读取时的代码如下:

    1 File testFile = ResourceUtils.getFile("classpath:test.png");

    idea中调试时是没有问题的,于是提交代码,发布服务等等操作,于是收到测试同事反馈回来的功能异常,查看日志,发现有大量的异常堆栈,看了下是test.png文件读取失败导致的空指针异常的问题。

    通过网上搜索才知道问题的根源所在,原来如果是war包时,tomcat是会解压成文件系统的文件的,这么使用是没有问题的,但是因为我们这个是使用的SpringBoot,直接打成jar包运行的,test.png文件只是jar包里面的资源文件,是不能去读取文件路径来访问的,网上的解决的方法有多种办法,基本上是通过classLoader.getResourceAsStream来读取的,但是Spring框架自己提供了一个ClassPathResource类,这个类是专门用于处理这种路径问题的,其使用也非常方便,修改后的代码如下:

    1 String fileName = "test.png";
    2 ClassPathResource rs = new ClassPathResource(fileName);
    3 InputStream testStream = rs.getInputStream();
  • 相关阅读:
    Netty入门(三)之web服务器
    Math对象
    DOM
    BOM
    字符串
    数组
    ajax
    如何安装vue脚手架
    git提交拉取远程仓库
    第九届蓝桥杯,赛后感!!含泪写完。
  • 原文地址:https://www.cnblogs.com/laoxia/p/12147343.html
Copyright © 2011-2022 走看看