开发者

SpringBoot打包后无法读取到resource下的资源文件的解决

目录
  • 前言
  • 一、问题描述
  • 二、问题解决
  • 三、问题总结

前言

提示:这里可以添加本文要记录的大概内容:

编程如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。

提示:以下是本篇文章正文内容,下面案例可供参考

一、问题描述

今天在做项目时发现对于SpringBoot获取资源文件这一块知识比较模糊,查询资料后记录以备后需。

开始想的是获取到资源javascript文件绝对路径,然后通过IO流的方式读取对应位置文件内容,但是在打包运行时报错找不到对应位置的文件资源。

SpringBoot打包后无法读取到resource下的资源文件的解决

二、问题解决

SpringBoot打包后无法读取到resource下的资源文件的解决

开发环境可以通过下述方式来读取文件test.txt:

1. 传统Java方式:

File file = new File("src/main/resources/static/assets/test.txt");
InputStream inputStream = new InputStream(file);

这种方式开发环境可用,打成jar包后报错。

2. ResourceUtils工具类:

File file = ResourceUtils.getFile("classpathgIziHqob:static/assets/test.txt");
InputStream inputStream = new InputStream(file);

这种方式开发环境可用,打成jar包后报错,因为jar包中的文件结构不会从src开始,百度查询后jar包中的资源必须以流的方式来读取。

3. ClassPathResource类:

ClassPathResource classpathResource = new Cl编程客栈assPathResource("static/assets/test.txt");
InputStream inputStream = classpathResource.getInputStream();

这种方法 开发环境和jar包都可以使用。

三、问题总结

1. 线上内嵌的工程,我们只会放一个jar文件上去,我理解是jar里面的路径是获取不到的,jar是封闭性东西吧,不像文件夹,总不能c:/home/xx.jar/file.txt。只能通过流的方式来读取。

2. jar里面文件读取方式:

ClassPathResource classPathResource = new ClassPathResource(“test.txt”);

获取文件流:

classPathResource .getInputStream();

以上为个人编程客栈经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜