springboot读取文件,打成jar包后访问不到
最新开发出现一种情况,springboot打成jar包后读取不到文件,原因是打包之后,文件的虚拟路径是无效的,只能通过流去读取。
文件在resources下
public void test() { List<String> names = new ArrayList<>(); InputStreamReader read = null; try { ClassPathResource resource = new ClassPathResource("name.txt"); InputStream inputStream = resource.getInputStream(); read = new InputStreamReader(inputStream, "utf-8"); BufferedReader bufferedReader = new BufferedReader(read); String txt = null; while ((txt = bufferedReader.readLine()) != null) { if (StringUtils.isNotBlank(txt)) { names.add(txt); } } } catch (Exception e) { e.printStackTrace(); } finally { if (read != null) { try { read.close(); } catch (IOException e) { e.printStackTrace(); } } } }
springboot打jar包后台无法访问静态文件夹
1.ResourceUtils
平常我们写spring boot 项目的时候偶尔会在后台用到classpath 底下的文件,一般我们都是这样写的
File file = ResourceUtils.getFile("classpath:static/image/image");
这样情况下本来是没啥问题的。但是用 打jar 包 运行以后就会找不到这个文件。
Resource下的文件是存在于jar这个文件里面,在磁盘上是没有真实路径存在的,它其实是位于jar内部的一个路径。所以通过ResourceUtils.getFile或者this.getClass().getResource("")方法无法正确获取文件。
对于这种情况。有时候会把项目文档放到项目外边,但是这样很容易把这些东西误删除掉。
2.ClassPathResource
ClassPathResource cpr = new ClassPathResource("static/image/image/kpg"); InputStream in = cpr.getInputStream();
3. ResourceLoader
public class ResourceRenderer { public static InputStream resourceLoader(String fileFullPath) throws IOException { ResourceLoader resourceLoader = new DefaultResourceLoader(); return resourceLoader.getResource(fileFullPath).getInputStream(); } }
用法
InputStream in = ResourceRenderer.resourceLoader("classpath:static/image/image");
这样就完美的解决了jar包底下路径无法访问的问题。
以上是springboot读取文件打成jar包后访问不到怎么解决的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

记事本++7.3.1
好用且免费的代码编辑器