在 Spring Boot 中从 Resources 目录读取文件

在 Spring Boot 中,resources 文件夹是标准项目结构的一部分。它用于存储配置文件、静态资源和数据文件,这些文件会在运行时被打包到 classpath 中。有时,我们需要在应用程序逻辑中读取该文件夹中的文件(例如 .txt 或 .json)。本文将解释如何使用 Spring Boot 从 resources 文件夹中读取文件。

前置知识

  • 对 Spring Boot 有基本了解
  • 掌握 REST API 的相关知识
  • 熟悉 Java I/O 操作

Resource 文件夹:

我们可以在下面的项目结构中看到 resources 文件夹。

!Resource Folder in Project Structure

示例文本文件:

我们在 Resource 文件夹中创建了一个名为 File1.txt 的文本文件,并在其中写入了一些数据。

!Example text file .png)

实现从 resources 文件夹读取文件的步骤

1. 创建一个 Spring Boot 项目

使用 Spring Initializr 创建一个新的 Spring Boot 项目,并添加以下依赖:

> dependencies {

> implementation ‘org.springframework.boot:spring-boot-starter-web‘

> compileOnly ‘org.projectlombok:lombok‘

> developmentOnly ‘org.springframework.boot:spring-boot-devtools‘

> annotationProcessor ‘org.projectlombok:lombok‘

> testImplementation ‘org.springframework.boot:spring-boot-starter-test‘

> }

2. 在 resources 文件夹中添加一个文件

在 src/main/resources 目录下,创建一个名为 File1.txt 的文本文件,并添加一些示例内容:

> Welcome to GeeksForGeeks – Spring Boot File Reading Example

3. 创建一个 Service 类

让我们创建一个 FileService 类,负责使用 Spring 的 ResourceLoader 从 resources 文件夹中读取文件。

Java


CODEBLOCK_751d77a3

  • ResourceLoader 帮助我们从 classpath、文件系统或 URL 加载文件。
  • 读取文件后务必关闭 BufferedReader。
  • 使用 "classpath:" 前缀来访问 src/main/resources 下的文件。

4. 创建一个 REST Controller

创建一个控制器,它暴露一个 API 端点来显示文件内容。

Java


CODEBLOCK_e3feacc5

5. 运行并测试应用程序

让我们将应用程序作为 Spring Boot App 运行。它将在默认端口 8080 上启动。

!Application Runs

现在,打开浏览器或 Postman 并访问该端点:

> http://localhost:8080/readfile

#### 输出结果:

!Read File Output

替代方案:使用 ClassPathResource

我们还可以使用 Spring Framework 提供的 ClassPathResource 来读取文件:

Java


CODEBLOCK_cecf6456

当您不需要注入 ResourceLoader 并且更倾向于直接访问 classpath 资源时,这种方法非常有用。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43618.html
点赞
0.00 平均评分 (0% 分数) - 0