欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > Java SpringBoot 打包后 获取文件 打包后找不到文件 解决方法

Java SpringBoot 打包后 获取文件 打包后找不到文件 解决方法

2025/5/3 9:20:01 来源:https://blog.csdn.net/Z_hhhha/article/details/139995632  浏览:    关键词:Java SpringBoot 打包后 获取文件 打包后找不到文件 解决方法

在SpringBoot下 本地运行获取项目下的文件是没问题的,在打包后获取则找不到文件
原因:

在Spring Boot项目中,当尝试访问项目下的文件时,本地开发环境和打包后的运行环境可能会有所不同。在本地开发时,通常可以直接通过相对路径或类路径来访问文件,因为文件就位于的项目目录中。但是,项目打包成JAR或WAR文件并部署到服务器上时,这些文件的结构会发生变化,所以需要以不同的方式来访问它们。

在Spring框架中,ResourcePatternResolver是一个接口,它允许你根据给定的模式来解析资源。PathMatchingResourcePatternResolver是这个接口的一个实现,它支持基于Ant样式的路径模式来查找资源。

当你创建一个PathMatchingResourcePatternResolver的实例时,你可以用它来解析项目内部或文件系统上的资源路径。例如,你可以用它来查找类路径(classpath)上的资源,或者查找文件系统上的资源。

上示例,说明如何使用PathMatchingResourcePatternResolver来加载类路径上的资源:

 //获取容器资源解析器
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
//获取所有匹配的文件Resource[] resources = resolver.getResources(filePath); //文件路径可以不写到根目录
if (resources.length > 0) {  //大于0代表找到了相关文件//获得文件流,因为在jar文件中,不能直接通过文件资源路径拿到文件,但是可以在jar包中拿到文件流//读取的文件流   todo 如果不确定是一个或者不是只需要第一个文件则可以遍历获取resources[0].getInputStream();  //拿到的文件流 这个时候就可以去使用他操作了哦
}
如上filePath 举例:文件在resources.file.demo.txt  则filePath =file/demo.txt即可。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词