当前位置: 首页 > 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;}

相关文章:

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

背景 项目开发过程中&#xff0c;有一些情况下将配置文件放在resource下能简化代码实现和部署时的打包步骤。例如&#xff1a; 项目中使用的数据库升级脚本、初始化脚本。将文件放到resource下&#xff0c;打包在jar包中&#xff0c;不能直接通过File路径读取。下面介绍两种读…...

R语言生物群落(生态)数据统计分析与绘图实践技术

R 语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂&#xff0c;涉及众多统计分析方法。本内容以生物群落数据分析中的最常用的统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法为主线&#xff0c;通过多个来…...

c# OpenCV 检测(斑点检测、边缘检测、轮廓检测)(五)

在C#中使用OpenCV进行图像处理时&#xff0c;可以使用不同的算法和函数来实现斑点检测、边缘检测和轮廓检测。 斑点检测边缘检测轮廓检测 一、斑点检测&#xff08;Blob&#xff09; 斑点检测是指在图像中找到明亮或暗的小区域&#xff08;通常表示为斑点&#xff09;&#…...

PHP下载安装以及基本配置

目录 引言 官网 下载 配置 1. 鼠标右键“此电脑”>“属性” 2. 打开高级系统设置 3. 打开环境变量 4. 双击系统变量中的path 5. 新建新的path 6. 将刚刚安装的位置加入环境变量 7. 检查是否安装成功 引言 PHP&#xff08;"PHP: Hypertext Preprocessor"…...

黑苹果安装经验总结2023-12

最近2个月安装了3台黑苹果 B85&#xff0c;I3-4330&#xff0c;HD7750&#xff0c;最容易安装&#xff0c;MacOS12一次成功山寨X99&#xff0c;E5-2650V4&#xff0c;RX470&#xff0c;难度高惠普Z840&#xff0c;X99平台&#xff0c;2颗E5-2630&#xff0c;128G内存&#xff…...

基于深度学习的森林火焰烟雾检测系统(含UI界面,yolov8、Python代码,数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8 yolov8主要包含以下几种创新&#xff1a;         1. 添加注意力机制&#xff08;SE、CBAM等&#xff09;         2. 修改可变形卷积&#xff08;DySnake-主干c…...

测试开发体系介绍——测试体系介绍-L1

目录&#xff1a; 软件测试基础概念 软件测试:软件测试作用:软件缺陷:软件测试原则:软件测试对象:测试用例软件开发流程 软件:软件生命周期:软件开发流程:瀑布模型:瀑布模型优缺点敏捷开发模型: XP - 极限编程:SCRUM:DevOps&#xff1a;DevOps 生命周期&#xff1a;DevOps 对发…...

Linux中的链接运算符详解 - 提高编程效率与性能

Linux 命令的链接意味着&#xff0c;组合多个命令并根据它们之间使用的操作符的行为使它们执行。 Linux 中的命令链就像您在 shell 本身编写简短的 shell 脚本&#xff0c;然后直接从终端执行它们。链接使得流程自动化成为可能。 此外&#xff0c;无人值守的机器可以在链接操作…...

JS模块化规范之ES6及UMD

JS模块化规范之ES6及总结 前言ES6模块化概念基本使用ES6实现 UMD(Universal Module Definition)总结 前言 ESM在模块之间的依赖关系是高度确定的&#xff0c;与运行状态无关&#xff0c;编译工具只需要对ESM模块做静态分析&#xff0c;就可以从代码字面中推断出哪些模块值未曾被…...

XM平台官网开户注册流程图解

注册前准备 在进行XM外汇官网注册之前&#xff0c;首先需要准备必要的信息&#xff0c;包括个人身份信息、联系方式以及相关财务信息。确保这些信息的准确性是保证注册流程顺利进行的关键。 一、要访问XM外汇官方网站&#xff0c;首先打开您的浏览器。在浏览器的地址栏中输入…...

【Linux进阶之路】线程

文章目录 一、初始线程1.概念2.执行3.调度4.切换 二、线程控制1.创建2.等待3.分离4.退出5.取消 三、线程安全1.互斥1.1初始1.2理解1.3锁1.3.1概念1.3.2原理1.3.4死锁 2.同步2.1概念2.2原理 3.生产消费者模型 总结尾序 一、初始线程 1.概念 简单的概念&#xff1a; 线程就是一…...

个性化TikTok外贸工具定制!突破营销新境界!

随着全球化的加速发展&#xff0c;外贸行业正面临着前所未有的机遇和挑战&#xff0c;在这个竞争激烈的市场环境中&#xff0c;如何脱颖而出&#xff0c;吸引更多的潜在客户&#xff0c;成为每个外贸企业亟待解决的问题&#xff0c;而个性化TikTok外贸工具的定制&#xff0c;正…...

设计模式-门面模式

设计模式专栏 模式介绍模式特点应用场景门面模式和代理模式的区别代码示例Java实现门面模式Python实现门面模式 门面模式在spring中的应用 模式介绍 门面模式是一种常用的软件设计模式&#xff0c;也称为外观模式。它提供了一个高层次的接口&#xff0c;将一个子系统的外部与内…...

搭建接口自动化测试框架python+requests+pytest

安装python&#xff08;最好是比较新比较稳定的版本&#xff09;&#xff0c;然后是python的解释器或者叫编译器pycharm安装后新建一个项目&#xff0c;以此项目为基础&#xff0c;安装依赖搭建框架。打开pycharm&#xff0c;点击左上角的File->New project->弹出如下界面…...

一套rk3588 rtsp服务器推流的 github 方案及记录 -02

整体方案参考上一篇博文 https://blog.csdn.net/qq_31764341/article/details/134810566 本篇博文主要介绍基于RK3588进行硬解码 还是之前的套路&#xff0c;我不生产代码&#xff0c;我只是代码的搬运工&#xff0c;今天我们搬运瑞芯微的官方代码&#xff0c;并记录下来整个调…...

docker运行java程序的Dockerfile

1&#xff0c;docker运行java程序的Dockerfile # 使用基础镜像 FROM alpine:latest # 暴露容器的端口 不会自动将容器的端口映射到宿主机上 docker run -d -p <宿主机端口>:7080 <镜像名称> EXPOSE 9202 EXPOSE 19202 #下载jdk8 RUN apk update && apk a…...

docker数据卷数据卷容器

前言 今天调休在家&#xff0c;随便玩玩&#xff0c;简单做下学习记录 1. 数据卷特点 数据卷在容器启动时初始化&#xff0c;如果容器使用的镜像在挂载点包含了数据&#xff0c;这些数据会被拷贝到新初始化的数据卷中数据卷可以在容器之间共享和重用可以对数据卷里的内容直接…...

使用HTTP协议有哪些风险?HTTP与HTTPS的区别是什么

作为两种常见的网络协议&#xff0c;HTTP和HTTPS都是用于在浏览器和服务器之间传输数据的。然而在保障数据安全性方面&#xff0c;HTTPS远远优于HTTP。在网络安全愈发重要的当下&#xff0c;HTTP协议的不安全性使得其逐渐被淘汰弃用。那么使用HTTP协议有哪些风险呢&#xff1f;…...

【jvm从入门到实战】(十) 实战篇-内存调优

内存溢出和内存泄漏&#xff1a;在Java中如果不再使用一个对象&#xff0c;但是该对象依然在GC ROOT的引用链上&#xff0c;这个对象就不会被垃圾回收器回收&#xff0c;这种情况就称之为内存泄漏。内存泄漏绝大多数情况都是由堆内存泄漏引起的。少量的内存泄漏可以容忍&#x…...

设计模式分类

不同设计模式的复杂程度、 细节层次以及在整个系统中的应用范围等方面各不相同。 我喜欢将其类比于道路的建造&#xff1a; 如果你希望让十字路口更加安全&#xff0c; 那么可以安装一些交通信号灯&#xff0c; 或者修建包含行人地下通道在内的多层互通式立交桥。 最基础的、 底…...

【前缀和】【单调栈】LeetCode2281:巫师的总力量和

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调栈 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 题目 作为国王的统治者&#xff0c;你有一支巫师军队听你指挥。 给你一个下标从 0 开始的整数数组 strength &…...

力扣面试经典题之二叉树

104. 二叉树的最大深度 简单 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xf…...

图灵日记之java奇妙历险记--数据类型与变量运算符

目录 数据类型与变量字面常量数据类型变量语法格式整型变量浮点型变量字符型变量希尔型变量类型转换自动类型转换(隐式)强制类型转换(显式) 类型提升不同数据类型的运算小于4字节数据类型的运算 字符串类型 运算符算术运算符关系运算符逻辑运算符逻辑与&&逻辑或||逻辑非…...

PhysX——源码编译

从git下载源码 git主页 https://github.com/NVIDIA-Omniverse/PhysXclone地址 https://github.com/NVIDIA-Omniverse/PhysX.git源码编译 运行PhysX需要两个编译器的支持&#xff0c;CMake 3.12 或以上版本以及Python 2.7.6 版本 进入工程的 physx 目录&#xff0c;运行generate…...

小鹅通基于 TSE 云原生 API 网关的落地实践

导语 2023腾讯全球数字生态大会已于9月7-8日完美落幕&#xff0c;40专场活动展示了腾讯最新的前沿技术、核心产品、解决方案。 微服务与消息队列专场&#xff0c;我们邀请到了小鹅通的基础架构组负责人黄徐震为我们带来了《小鹅通基于 TSE 云原生网关的落地实践》的精彩演讲。…...

Postgresql处理JSON类型中替换某个属性值问题

一、问题描述 使用postgresql对json的特性使用sql批量处理json中某个属性的值 结构如下&#xff1a; {"id": 1,"parentId": 123,"globalParameters": [{"value": "date","boardId": 123,"canReName":…...

@德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?

德人合科技 | 天锐绿盾加密软件是一款全面保障企业电脑数据和安全使用的加密软件 PC端访问地址&#xff1a;www.drhchina.com 它的功能包括但不限于&#xff1a; 实时操作日志&#xff1a;可以实时详细地记录所有终端的操作日志&#xff0c;包括终端上窗口标题的变换、程序的…...

android 使用GSON 序列化对象出现字段被优化问题解决方案

一、问题描述 有以下结构&#xff1a; public class NativeParam<T> {private T data;public NativeParam(T data) {this.data data;}public T getData() {return data;}public void setData(T data) {this.data data;} };NativeParam<String> data "1.0…...

进入不了Bios?进入Bios的方法都在这了,肯定能进!

前言 有些小伙伴可能在重装系统的第一步就卡住了&#xff0c;接着就放弃了。哇哈哈哈啊&#xff0c;先让小白笑会&#xff5e; 根据小白十二年的装机经验&#xff0c;不同主板进入Bios的时候有不同的姿势。也许要蹲着大喊Bios才能进入呢&#xff1f;要不试试&#xff1f; 好了…...

手把手教你基于 FastGPT 搭建个人知识库

前言 大家好&#xff0c;我是潇潇雨声。我发现在使用 GPT 时&#xff0c;尽管它能够生成一些小红书文案和日志&#xff0c;但内容常常显得空洞缺乏深度。今天我想分享一个解决这个问题的方法&#xff0c;那就是基于开源项目 FastGPT[1]。 我们可以通过向 GPT 提供一些有针对性的…...

做网站图片素材在线编辑/网络推广网站排名

操作系统实 验 报 告课程名称操作系统实验实验项目名称磁盘调度算法学号班级姓名专业计算机科学与技术学生所在学院计算机科学与技术学院指导教师初妍实验室名称地点21#428哈尔滨工程大学计算机科学与技术学院第六讲 磁盘调度算法一、实验概述1. 实验名称磁盘调度算法2. 实验目…...

域名怎么做网站/优化教程

原文&#xff1a;http://davidhhs.iteye.com/blog/2268888 功能优化&#xff0c;增加级联查询功能&#xff08;注&#xff1a;依赖Jquery.js&#xff0c;附有源代码&#xff0c;可以当作插件直接使用&#xff09; 级联查询下拉框组调用代码&#xff1a; bindCascadeAutoSelec…...

上海招聘网站哪个靠谱/推广产品吸引人的句子

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主同意不得转载。 https://blog.csdn.net/zhangdaiscott/article/details/26488439 jeecg v3.0入门视频 链接: http://pan.baidu.com/s/1bnrMfiJpassword: 8q0k MiniDao持久层 入门视频 链接: http://pan.baidu.com…...

婚礼礼网站如何做的/营销渠道有哪些

转载自&#xff1a;https://www.cnblogs.com/birdsmaller/p/5377104.html 背景 涉及身份验证的系统都需要存储用户的认证信息&#xff0c;常用的用户认证方式主要为用户名和密码的方式&#xff0c;为了安全起见&#xff0c;用户输入的密码需要保存为密文形式&#xff0c;可采用…...

超炫的网站/网络推广策划方案怎么写

1&#xff1a;java 的最大特点及实现原理跨平台实现原理&#xff1a;java首先利用文本编辑器编写java源程序&#xff0c;源文件的后缀名为.java&#xff1b;再利用编译器&#xff08;javac&#xff09;将程序编译为字节码文件&#xff0c;字节码文件的后缀名.class&#xff1b;…...

设计页面的软件/德州网站建设优化

2019独角兽企业重金招聘Python工程师标准>>> 快速高效用&#xff1a;SET SQL_SAFE_UPDATES 0&#xff1b;下面的就不要看了&#xff01; 今日用MySQL Workbench进行数据库的管理更新时&#xff0c;执行一个更新的语句碰到以下错误提示&#xff1a; Error Code: 1…...