You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Android Studio中使用Java实现选择.doc文件并提取文本的方法

Android Java 端提取DOC文件文本的实现方案

1. 前置功能:文件选择实现

  • 适配Android 11(API 30)及以上版本:直接使用Activity Result API调用系统文件选择器,过滤MIME类型为application/msword即可选中DOC文件,无需申请额外存储权限。
  • 适配Android 10及以下版本:先动态申请READ_EXTERNAL_STORAGE存储权限,再调用文件选择器获取目标文件的Uri。

2. DOC文本提取核心方案

方案一:裁剪版Apache POI 本地解析

原生Apache POI包体积过大,安卓端推荐使用社区裁剪适配的版本,避免包体积过度膨胀

  • 首先在模块级build.gradle中引入适配依赖:
implementation 'com.github.SUPERCILEX.poi-android:poi:3.17'
implementation 'com.github.SUPERCILEX.poi-android:poi-ooxml:3.17'
  • 提取文本的核心代码示例:
// 仅示例逻辑,实际开发需添加异常捕获、资源关闭、子线程执行逻辑
InputStream inputStream = getContentResolver().openInputStream(targetFileUri);
HWPFDocument doc = new HWPFDocument(inputStream);
WordExtractor extractor = new WordExtractor(doc);
String extractedText = extractor.getText();
// 依次关闭extractor、doc、inputStream资源
  • 特点:离线可用,DOC格式解析准确率高,适配绝大多数文档场景;包体积会增加3~5M左右。

方案二:轻量原生解析库解析

如果对包体积要求极高,可以选择集成封装了antiword的安卓原生适配库,通过底层C代码完成DOC解析

  • 特点:包体积增量不到1M,解析速度快;对包含复杂表格、大量嵌入资源的DOC文件解析准确率低于POI方案。

方案三:后端中转解析

如果应用自带后端服务,可将选中的DOC文件上传至后端,由后端完成解析后返回文本结果到移动端

  • 特点:不占用移动端包体积,解析逻辑统一在后端维护更方便;必须联网才能使用,需要额外开发后端解析接口。

注意:所有文件IO操作、解析逻辑都必须放在子线程执行,避免阻塞主线程触发ANR,操作完成后需及时释放资源避免内存泄漏。


内容的提问来源于stack exchange,提问作者Tauseef Rehman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:15:07