在 Java 中,使用 Apache Tika 读取 doc 和 docx 等格式的文件内容非常方便。Tika 是一个内容分析工具,能够自动检测文档的 MIME 类型并提取其文本内容,支持包括 Word、PDF、HTML、TXT 等多种格式。
下面是一个使用 Apache Tika 读取 .doc 和 .docx 文件的完整示例。
1. 引入依赖(Maven)
确保在你的 pom.xml 中添加 Tika 的依赖:
xml
复制编辑
<dependencies> <dependency> <groupId>org.apache.tika</groupId> <artifactId>tika-core</artifactId> <version>2.9.1</version> </dependency> <dependency> <groupId>org.apache.tika</groupId> <artifactId>tika-parsers-standard-package</artifactId> <version>2.9.1</version> </dependency> </dependencies>
⚠️ 版本可根据需要调整,
tika-parsers-standard-package包含了大多数常见格式的解析器,包括 Word。
2. Java 示例代码
java
复制编辑
import org.apache.tika.Tika; import org.apache.tika.exception.TikaException; import java.io.File; import java.io.IOException; public class TikaWordReader { public static void main(String[] args) { // 指定文件路径 File file = new File("example.docx"); // 或 example.doc // 创建 Tika 实例 Tika tika = new Tika(); try { // 提取文本内容 String text = tika.parseToString(file); System.out.println("文件内容:"); System.out.println(text); } catch (IOException | TikaException e) { e.printStackTrace(); } } }
支持的 Word 文件类型
| 文件类型 | 支持情况 |
|---|---|
.doc | ✅ 支持 |
.docx | ✅ 支持 |
.odt | ✅ 支持 |
.rtf | ✅ 支持 |
注意事项
- 对于
.doc文件,Tika 会使用 Apache POI 的HWPF支持; - 对于
.docx文件,则使用XWPF; - Tika 自动识别文件类型,你不需要关心它是
doc还是docx; - 如果提取内容为乱码,可能是因为文件编码问题或者内容为图片扫描件(OCR 可考虑整合 Tesseract)。
如你还需批量读取多个文件、整合到 Web 项目、提取元数据(标题、作者等),也可以扩展这个基本使用方式。
是否需要一个读取整个文件夹下所有 Word 文档的批量处理代码?
启明源码网:www.qimingym.com