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

在 Java 中使用 Apache Tika 读取 doc、docx等格式文件内容

本文主要是介绍使用 Apache Tika 来读取 doc、docx 等格式文件内容。

场景

大模型业务应用开发中,避免不了文件的读取,虽说很多大模型应用平台都支持上传文件进行读取,但工作中不少文件保密性是相当高的,必须先在代码中处理一遍。

那么就会涉及到后端系统中读取多种文件格式的内容的场景,此时,正是 Tika 大显身手的好时候。

优点

这里选择对比网络上常出现的 poi 组件,有以下优点:

  1. 无需自行判断文件格式从而去选择对应的解析器,tika 支持自识别相当多的文件格式;
  2. 针对错误的 doc、docx 格式,传统代码很难区分,容易导致抛出异常。

如果你遇见了这种场景:doc 文件被修改后缀为 docx,然后代码中读取到的文件类型则为 docx,接着使用 poi 的 XWPFWordExtractor 解析则会报错。

此种情况是不容易区分出两种文件类型的,因为使用 WPS 打开不会存在提示,业务老师对此也不会敏感,你甚至都很难加上约束。

此时可以考虑使用 Apache Tika 帮你快速稳定实现文件读取功能。

用法

引入依赖

dependencies {runtime 'org.apache.tika:tika-core:3.2.0'runtime 'org.apache.tika:tika-parsers-standard-package:3.2.0'
}

执行代码

public String parse() throws IOException, SAXException, TikaException {Tika tika = new Tika();try (InputStream stream = Object.class.getResourceAsStream("test.doc")) {return tika.parseToString(stream);}
}

参考

https://tika.apache.org/3.2.0/examples.html
https://allinprogram.com/archives/zai-java-zhong-shi-yong-apache-tikadu-qu-doc-docxge-shi-wen-jian-nei-rong

http://www.lryc.cn/news/571480.html

相关文章:

  • python web开发-Flask 重定向与URL生成完全指南
  • 课程1-10笔记
  • Vue3+TypeScript中v-bind()的原理与用法
  • JavaEE->多线程1
  • Python词频统计工具全解析
  • 代码随想录打卡第三十天 动态规划
  • CppCon 2016 学习:The Exception Situation
  • 【wsl】docker
  • Python FastAPI详解
  • 在Docker上安装Mongo及Redis-NOSQL数据库
  • JVM(4)——引用类型
  • CubeMax配置串口通讯
  • 微信小程序:将搜索框和表格封装成组件,页面调用组件
  • Kafka 向 TDengine 写入数据
  • 游戏技能编辑器界面优化设计
  • Java + Spring Boot + MyBatis 枚举变量传递给XML映射文件做判断
  • node.js使用websockify代理VNC代理使用NoVNC进行远程桌面实现方案
  • docker问题排查
  • 【Python系列PyCharm实战】ModuleNotFoundError: No module named ‘sklearn’ 系列Bug解决方案大全
  • 使用Kotlin开发后端服务的核心方法
  • 【大模型:知识库管理】--MinerU本地部署
  • 最新整理【剑侠情缘龙雀修复BGU版】linux服务端带授权后台+详细教程+包进游戏
  • LangSmith 深度解析:构建企业级LLM应用的全生命周期平台
  • 【day51】复习日
  • conda 下载指定 python 版本安装,即 base 环境为指定的python版本
  • Unity Editor代码引用子场景物体,需要激活子场景
  • 【 FastJSON 】解析多层嵌套
  • 希尔脚本简介及常用命令代码整理
  • 20倍光学镜头怎么实现20+20倍数实现
  • Spring @OnApplicationEvent 典型用法