读取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;
    }

相关推荐

  1. [Spark] 读取项目resources/文件

    2023-12-21 11:48:04       38 阅读
  2. 解决SpringBoot jar包resources目录文件读取不到

    2023-12-21 11:48:04       41 阅读
  3. 下载工程resources目录模板excel文件

    2023-12-21 11:48:04       9 阅读
  4. Springboot resource excel

    2023-12-21 11:48:04       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-21 11:48:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-21 11:48:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-21 11:48:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-21 11:48:04       20 阅读

热门阅读

  1. Linux中systemctl使用

    2023-12-21 11:48:04       40 阅读
  2. 嵌入式备赛:PWM控制及源代码解析

    2023-12-21 11:48:04       39 阅读
  3. Python列表详解

    2023-12-21 11:48:04       37 阅读
  4. 前端高频编程题

    2023-12-21 11:48:04       35 阅读
  5. electron 快速上手学习

    2023-12-21 11:48:04       33 阅读
  6. Electron训练笔记

    2023-12-21 11:48:04       44 阅读
  7. 理德名人故事:美国投资大师——伯顿·麦基尔

    2023-12-21 11:48:04       45 阅读
  8. ZZ014城市轨道交通运营与维护赛题第3套

    2023-12-21 11:48:04       37 阅读
  9. 北斗卫星导航系统技术指标

    2023-12-21 11:48:04       29 阅读
  10. 我的一天:追求专业成长与生活平衡

    2023-12-21 11:48:04       40 阅读