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

基于springboot的java读取文档内容(超简单)

     读取一个word文档里面的内容,并取出来。

代码:

 @SneakyThrows@GetMapping(value = "/readWordDoc")@ApiOperationSupport(order = 1)@ApiOperation(value = "文档读取 ", notes = "文档读取 ")public R ReadWordDoc () {System.out.println("进来了");String filePath = "F:\\\\工作\\\\测试\\\\测试文档2.doc"; // 替换为你的文档路径String text = "";StringBuffer text2 = new StringBuffer();try (FileInputStream fis = new FileInputStream(filePath)) {// 使用FileInputStream打开Word文档XWPFDocument document = new XWPFDocument(fis);// 读取段落内容List<XWPFParagraph> paragraphs = document.getParagraphs();for (XWPFParagraph para : paragraphs) {
//                text = para.getText(); // 获取段落内容text2.append(para.getText());}} catch (IOException e) {e.printStackTrace();}// FileInputStream和XWPFDocument资源会自动关闭System.out.println(text2); // 输出内容return R.data(text2);}

输出结果:

代码解析:

1. `@SneakyThrows` 注解:这是一个Lombok注解,用于自动处理异常,可以将受检异常转换为不受检异常。

2. `@GetMapping(value = "/readWordDoc")` 注解:这是一个Spring MVC注解,指定了该方法处理的GET请求路径。

3. `@ApiOperationSupport(order = 1)` 注解:这是一个Swagger注解,用于设置接口的展示顺序。

4. `@ApiOperation(value = "文档读取 ", notes = "文档读取 ")` 注解:这是一个Swagger注解,用于设置接口的名称和说明。

5. `public R ReadWordDoc()` 方法:这是一个公共的无参方法,表示该方法的访问修饰符是public,返回类型是一个自定义的R类型。

6. `String filePath` 变量:用于存储Word文档的文件路径。

7. `String text` 和 `StringBuffer text2` 变量:分别用于存储文档内容。

8. `try (FileInputStream fis = new FileInputStream(filePath))`:使用Java 7的try-with-resources语法,创建一个FileInputStream对象,并设置文档路径。

9. `XWPFDocument document = new XWPFDocument(fis)`:创建一个XWPFDocument对象,表示Word文档。

10. `List<XWPFParagraph> paragraphs = document.getParagraphs()`:获取文档中的所有段落,返回一个包含XWPFParagraph对象的列表。

11. `for (XWPFParagraph para : paragraphs)`:遍历段落列表。

12. `text2.append(para.getText())`:使用StringBuffer对象将每个段落的文本内容添加到text2中。

13. `catch (IOException e)`:捕获IOException异常,打印异常信息。

14. `System.out.println(text2)`:输出文档内容。

15. `return R.data(text2)`:将text2作为响应数据,返回一个R对象。

为了使上述代码能够编译和运行,需要引入以下依赖:

1. Spring Boot相关依赖,包括`spring-boot-starter-web`、`spring-boot-starter`等,用于构建Web应用程序。

2. Swagger依赖,用于生成API文档,如`springfox-swagger2`和`springfox-swagger-ui`。

3. Apache POI依赖,用于处理Word文档,如`poi-ooxml`和`poi-ooxml-schemas`。

这些依赖可以在项目的构建工具(如Maven或Gradle)中进行配置,并在项目中进行引用。

相关文章:

基于springboot的java读取文档内容(超简单)

读取一个word文档里面的内容&#xff0c;并取出来。 代码&#xff1a; SneakyThrowsGetMapping(value "/readWordDoc")ApiOperationSupport(order 1)ApiOperation(value "文档读取 ", notes "文档读取 ")public R ReadWordDoc () {System.o…...

K8S亲和性,反亲和性,及污点

nodeName&#xff1a;硬匹配&#xff0c;不走调度策略 nodeSelector&#xff1a;根据节点的标签选择&#xff0c;会走调度的算法 只要是走调度算法&#xff0c;在不满足预算策略的情况下&#xff0c;所有pod都是pending node节点的亲和性&#xff1a; 硬策略&#xff1a;必…...

2024年,AI、Web3、区块链、元宇宙:有没有“相互成就“的可能性?

加密圈最近有点冷清&#xff0c;曾经是科技界的宠儿&#xff0c;去年中旬开始一直在被SEC的诉讼困扰着&#xff0c;而且正处冷清的熊市&#xff0c;被迫居于 AI 后面的次要地位。 曾在 Web3 领域活跃并具有影响力的企业家 Jeremiah Owyang 住在旧金山&#xff0c;目前也深入研…...

Mac电脑好用的修图软件:Affinity Photo 2中文 for Mac

Affinity Photo 2提供了广泛的图像编辑和调整工具&#xff0c;使用户能够对照片进行精确的编辑和改进。它支持图像裁剪、旋转、缩放、变形等操作&#xff0c;以及曝光、色彩、对比度、饱和度等调整。 非破坏性编辑&#xff1a;软件采用非破坏性编辑方式&#xff0c;即对原始图…...

数据结构之Radix和Trie

数据结构可视化演示链接&#xff0c;也就是视频中的网址 Radix树&#xff1a;压缩后的Trie树 Radix叫做基数树&#xff08;压缩树&#xff09;&#xff0c;就是有相同前缀的字符串&#xff0c;其前缀可以作为一个公共的父节点。同时在具体存储上&#xff0c;Radix树的处理是以…...

ctrl+c与kill -2的区别

单进程场景 在单进程的情况下&#xff0c;ctrlc和kill -2是一模一样的&#xff0c;都是向指定的进程发送SIGINT信号. 如果进程中注册了捕捉SIGINT信号的处理函数&#xff0c;那么这个信号会被进程处理&#xff0c;例如&#xff1a; void processB() {// Set signal handler …...

每日算法打卡:分巧克力 day 9

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例&#xff1a;输出样例&#xff1a; 题目分析示例代码 原题链接 1227. 分巧克力 题目难度&#xff1a;简单 题目来源&#xff1a;第八届蓝桥杯省赛C A/B组,第八届蓝桥杯省赛Java A/B/C组 题目描述 儿童节那天有 …...

Golang switch 语句

简介 switch 语句提供了一种简洁的方式来执行多路分支选择 基本使用 基本语法如下&#xff1a; switch expression { case value1:// 当 expression 的值等于 value1 时执行 case value2:// 当 expression 的值等于 value2 switch 的每个分支自动提供了隐式的 break&#x…...

可碧教你C++——位图

本章节是哈希的延申 可碧教你C——哈希http://t.csdnimg.cn/3R8TU 一文详解C——哈希 位图 位图是基于哈希表的原理产生的一种新的container——bitset 基于哈希映射的原理&#xff0c;我们在查找的时候&#xff0c;可以直接去定址到元素的具体位置&#xff0c;然后直接访问该…...

2024年虚拟DOM技术将何去何从?

从诞生之初谈起&#xff0c;从命令式到声明式&#xff0c;Web开发的演变之路 Web开发的起源与jQuery的统治 在Web开发的早期阶段&#xff0c;操作DOM元素主要依赖命令式编程。当时&#xff0c;jQuery因其易用性而广受欢迎。使用jQuery&#xff0c;开发者通过具体的命令操作DOM&…...

基于51单片机的恒温淋浴器控制电路设计

标题&#xff1a;基于51单片机的智能恒温淋浴器控制系统设计与实现 摘要&#xff1a; 本论文主要探讨了一种基于STC89C51单片机为核心控制器的恒温淋浴器控制系统的详细设计与实现。系统通过集成温度传感器实时监测水温&#xff0c;结合PID算法精确控制加热元件工作状态&#…...

【redis】redis的bind配置

在配置文件redis.conf中&#xff0c;默认的bind 接口是127.0.0.1&#xff0c;也就是本地回环地址。这样的话&#xff0c;访问redis服务只能通过本机的客户端连接&#xff0c;而无法通过远程连接&#xff0c; 这样可以避免将redis服务暴露于危险的网络环境中&#xff0c;防止一些…...

C++ 继承

目录 一、继承的概念及定义 1、继承的概念 2、继承定义 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 五、继承与友元 六、继承与静态成员 七、复杂的菱形继承及菱形虚拟继承 1、菱形继承 2、虚拟继承 3、例题 八、继承的总结和反思…...

了解ASP.NET Core 中的文件提供程序

写在前面 ASP.NET Core 通过文件提供程序来抽象化文件系统访问。分为物理文件提供程序(PhysicalFileProvider)和清单嵌入的文件提供程序(ManifestEmbeddedFileProvider)还有复合文件提供程序(CompositeFileProvider )&#xff1b;其中PhysicalFileProvider 提供对物理文件系统…...

竞赛保研 基于深度学习的人脸性别年龄识别 - 图像识别 opencv

文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计…...

JavaScript音视频,JavaScript简单获取电脑摄像头画面并播放

前言 本章实现JavaScript简单获取电脑摄像头画面并播放的功能 兼容性(不支持Node.js) 需要注意的是,由于涉及到用户的隐私和安全,获取用户媒体设备需要用户的明确同意,并且可能需要在用户的浏览器中启用相关的权限。在某些浏览器中,可能需要用户手动开启摄像头权限。 …...

《JVM由浅入深学习【五】 2024-01-08》JVM由简入深学习提升分享

目录 JVM何时会发生堆内存溢出&#xff1f;1. 堆内存溢出的定义2. 内存泄漏的原因3. 堆内存溢出的常见场景4. JVM参数调优5. 实际案例分析 JVM如何判断对象可以回收1.可达性分析的基本思路2.实际案例3.可以被回收的对象4.拓展&#xff0c; 谈谈 Java 中不同的引用类型? 结语感…...

FastDFS之快速入门、上手

知识概念 分布式文件系统 通过计算机网络将各个物理存储资源连接起来。通过分布式文件系统&#xff0c;将网络上任意资源以逻辑上的树形结构展现&#xff0c;让用户访问网络上的共享文件更见简便。 文件存储的变迁&#xff1a; 直连存储&#xff1a;直接连接与存储&#xf…...

Vue 中的 ref 与 reactive:让你的应用更具响应性(中)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...

【数据库基础】Mysql与Redis的区别

看到一篇不错的关于“Mysql与Redis的区别”的文章&#xff0c;转过来记录下~ 文章目录 一、数据库类型二、运行机制三、什么是缓存数据库呢&#xff1f;四、优缺点比较五、区别总结六、数据可以全部直接用Redis储存吗&#xff1f;参考资料 一、数据库类型 Redis&#xff1a;NOS…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...