当前位置: 首页 > news >正文

读取spring boot项目resource目录下的文件

背景

项目开发过程中,有一些情况下将配置文件放在resource下能简化代码实现和部署时的打包步骤。例如: 项目中使用的数据库升级脚本、初始化脚本。将文件放到resource下,打包在jar包中,不能直接通过File路径读取。下面介绍两种读取文本文件内容和获取文件夹下所有子文件名的方法。

示例文件目录:
在这里插入图片描述

读取文本文件内容

    /*** 读取 resource下文件内容** @param resourceFilePath resource下文件相对路径. 例如: dbscript/123.sql* @return 文件内容列表*/public List<String> readFileInResource(String resourceFilePath) {List<String> lines = new ArrayList<>();InputStream inputStream = null;try {inputStream = getClass().getResourceAsStream("/" + resourceFilePath);BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));String line = "";while ((line = reader.readLine()) != null) {lines.add(line);}} catch (Exception e) {LOGGER.error("Read file fail. resourceFilePath:" + resourceFilePath, e);} finally {if (inputStream != null) {try {inputStream.close();} catch (IOException e) {LOGGER.error("Close file fail.", e);}}}return lines;}

获取文件夹下子文件名称

    /*** 获取resource下文件夹中的文件名列表** @param folderPath 文件夹路径. 行对路径. 如: dbscript* @return 文件名称列表*/public List<String> getFileListInResource(String folderPath) {List<String> files = new ArrayList<>();try {File folderDir = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX + folderPath);if (!folderDir.exists()) {return files;}files = Arrays.asList(Objects.requireNonNull(folderDir.list())) ;} catch (Exception e) {LOGGER.error("Get file list fail. folderPath:" + folderPath, e);}return files;}
http://www.lryc.cn/news/265311.html

相关文章:

  • R语言生物群落(生态)数据统计分析与绘图实践技术
  • c# OpenCV 检测(斑点检测、边缘检测、轮廓检测)(五)
  • PHP下载安装以及基本配置
  • 黑苹果安装经验总结2023-12
  • 基于深度学习的森林火焰烟雾检测系统(含UI界面,yolov8、Python代码,数据集)
  • 测试开发体系介绍——测试体系介绍-L1
  • Linux中的链接运算符详解 - 提高编程效率与性能
  • JS模块化规范之ES6及UMD
  • XM平台官网开户注册流程图解
  • 【Linux进阶之路】线程
  • 个性化TikTok外贸工具定制!突破营销新境界!
  • 设计模式-门面模式
  • 搭建接口自动化测试框架python+requests+pytest
  • 一套rk3588 rtsp服务器推流的 github 方案及记录 -02
  • docker运行java程序的Dockerfile
  • docker数据卷数据卷容器
  • 使用HTTP协议有哪些风险?HTTP与HTTPS的区别是什么
  • 【jvm从入门到实战】(十) 实战篇-内存调优
  • 设计模式分类
  • 【前缀和】【单调栈】LeetCode2281:巫师的总力量和
  • 力扣面试经典题之二叉树
  • 图灵日记之java奇妙历险记--数据类型与变量运算符
  • PhysX——源码编译
  • 小鹅通基于 TSE 云原生 API 网关的落地实践
  • Postgresql处理JSON类型中替换某个属性值问题
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • android 使用GSON 序列化对象出现字段被优化问题解决方案
  • 进入不了Bios?进入Bios的方法都在这了,肯定能进!
  • 手把手教你基于 FastGPT 搭建个人知识库
  • gitee 怎么添加SSH密钥