解决springboot读取jar包中文件的问题

65 篇文章 0 订阅
4 篇文章 0 订阅

在开发环境中,使用 ResourceUtils.getFile(“classpath:static/files/8k.wav”) 能读取到 File ,结果打包发布后,读取不了。
解决方法

InputStream stream = getClass().getClassLoader().getResourceAsStream("static/files/8k.wav");
File targetFile = new File("files/8k.wav");
FileUtils.copyInputStreamToFile(stream, targetFile);

或通过以下方式获取

ClassPathResource resource = new ClassPathResource("static/office_template/word_replace_tpl.docx");
File sourceFile = resource.getFile();
InputStream fis = resource.getInputStream();
还可以参考此篇文章中的方法:https://blog.csdn.net/zhuyu19911016520/article/details/98071242
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Spring Boot是一个非常流行的Java框架,它可以轻松地将Java应用部署为独立的、自包含的可执行jar文件,包含了应用所有所需的依赖库。但是,有时候我们需要从可执行jar文件读取一些配置文件或者资源文件,这些文件在构建过程被打包进了jar包文件。那么该怎么读取这些文件呢? Spring Boot提供了一个非常简单的方式,只需要使用Spring框架Resource类就可以轻松地实现。在Spring Boot使用Resource类来读取jar包文件,如下所示: ```java import org.springframework.core.io.Resource; import org.springframework.core.io.ClassPathResource; public class ReadFileFromJar { public static void main(String[] args) throws IOException { Resource resource = new ClassPathResource("config.properties"); InputStream inputStream = resource.getInputStream(); Properties properties = new Properties(); properties.load(inputStream); String value = properties.getProperty("key"); System.out.println(value); } } ``` 上面的代码,我们首先使用ClassPathResource类创建一个Resource对象,然后调用getInputStream()方法获取文件的输入流。最后,我们使用Properties类读取属性文件的内容,并输出其的一个属性值。 注意:在使用Spring Boot的时候,所有的资源文件都需要放到classpath路径下,这样Resource类才能正确读取。在IDE集成开发环境,可以将这些文件放到src/main/resources目录下,或者配置maven的build过程将这些资源文件打包到jar文件
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值