通过Java实现Word转TXT的完整代码

 更新时间:2026年07月17日 09:15:46   作者:Jazz_z  
在日常开发中,将 Word 文档转换为纯文本格式是一类高频需求,常见于内容检索、文本分析、数据入库、批量文档预处理等场景,本文将介绍如何通过 Free Spire.Doc for Java 免费库,快速实现 Word(DOC/DOCX)到 TXT 的转换,需要的朋友可以参考下

引言

在日常开发中,将 Word 文档转换为纯文本格式是一类高频需求,常见于内容检索、文本分析、数据入库、批量文档预处理等场景。相比于直接解析 Word 二进制格式,使用成熟的文档处理库可以大幅降低开发成本。本文将介绍如何通过 Free Spire.Doc for Java 免费库,快速实现 Word(DOC/DOCX)到 TXT 的转换,并提供完整的代码示例与注意事项。

一、常见方案

Word 文档本质上是包含样式、格式、图片、表格等富内容的结构化文件,纯文本提取的核心目标是剥离格式信息,保留可读的文字内容。

实现 Word 转 TXT 通常有几条技术路径:

  • 基于 Apache POI 自行解析:灵活度高,但需要处理不同版本格式差异,代码量较大
  • 调用 Office 自动化接口:依赖本地 Office 环境,服务器部署成本高
  • 使用第三方文档库:API 封装完善,无需依赖 Office,开发效率高

Free Spire.Doc for Java 属于第三类方案,独立运行不依赖 Microsoft Office,对 DOC 和 DOCX 格式均有良好支持,API 设计简洁,适合快速落地转换功能。

二、Maven 依赖配置

在项目 pom.xml 中添加官方仓库与免费版依赖:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.doc.free</artifactId>
    <version>14.3.1</version>
</dependency>

三、Word 转 TXT 核心实现

转换过程极为简洁,核心就三步:加载 → 保存 → 释放资源

import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class WordToTxtConverter {
    public static void main(String[] args) {
        // 1. 创建Document对象
        Document doc = new Document();
        
        // 2. 加载Word文档(支持.doc和.docx)
        doc.loadFromFile("C:\\input\\示例文档.docx");
        
        // 3. 保存为TXT格式
        doc.saveToFile("C:\\output\\转换结果.txt", FileFormat.Txt);
        
        // 4. 释放资源
        doc.dispose();
    }
}

saveToFile 方法会保留段落之间的换行,整体输出结构与原文段落顺序一致。

四、进阶用法与批量处理

批量转换

如需批量转换多个 Word 文档,可结合目录遍历:

import java.io.File;
import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class BatchWordToTxt {
    public static void main(String[] args) {
        String inputDir = "C:\\word_files\\";
        String outputDir = "C:\\txt_output\\";
        
        File folder = new File(inputDir);
        File[] files = folder.listFiles((dir, name) -> 
            name.endsWith(".doc") || name.endsWith(".docx"));
        
        if (files != null) {
            for (File wordFile : files) {
                Document doc = new Document();
                doc.loadFromFile(wordFile.getAbsolutePath());
                
                String outputPath = outputDir + 
                    wordFile.getName().replaceAll("\\.docx?$", ".txt");
                doc.saveToFile(outputPath, FileFormat.Txt);
                doc.dispose();
                
                System.out.println("已转换: " + wordFile.getName());
            }
        }
    }
}

提取文本而非保存为文件

如果只需要获取文本内容用于内存处理(如存入数据库),可以使用 getText() 方法:

Document doc = new Document();
doc.loadFromFile("示例.docx");
String textContent = doc.getText();  // 获取纯文本内容
doc.dispose();
// 后续可对textContent进行进一步处理

五、常见问题

5.1 免费版功能限制

免费版本有段落数和表格数量上限,适合个人学习、小型工具和功能验证场景。

5.2 编码问题

  • 直接使用 saveToFile 输出 TXT 时,默认编码为 UTF-8
  • 如果目标系统使用 GBK 编码,可在写入时切换编码格式

5.3 资源释放

Document 对象会占用一定内存,使用完毕后务必调用 dispose() 方法释放资源。在批量转换场景下,建议每处理完一个文件就及时释放,避免 OOM。

5.4 非文本内容处理

TXT 本身不支持图片、表格边框、字体样式等富格式,转换后:

  • 图片会被忽略,不会出现在 TXT 中
  • 表格内容会按单元格顺序转为纯文本,行列结构丢失
  • 超链接仅保留显示文字,不保留链接地址

如果需要保留更多格式信息,可考虑转 HTML 或 Markdown 等中间格式。

以上示例演示了如何用几行代码完成核心转换逻辑,对于不需要深度定制格式的场景,这种方案开发成本低、接入速度快,能够满足大多数文本提取类需求。

在实际项目中,建议结合文档规模、并发量和格式保留要求做综合评估:小规模批量处理用免费版即可快速落地;如果是生产环境高并发、大文档场景,则需要进一步评估性能与其他方案。

以上就是通过Java实现Word转TXT的完整代码的详细内容,更多关于Java实现Word转TXT的资料请关注脚本之家其它相关文章!

相关文章

  • Java中List集合数据修改方式

    Java中List集合数据修改方式

    这篇文章主要介绍了Java中List集合数据修改方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Java NIO 文件通道 FileChannel 用法及原理

    Java NIO 文件通道 FileChannel 用法及原理

    这篇文章主要介绍了Java NIO 文件通道 FileChannel 用法和原理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Java日常练习题,每天进步一点点(53)

    Java日常练习题,每天进步一点点(53)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-08-08
  • 详述IntelliJ IDEA远程调试Tomcat的方法(图文)

    详述IntelliJ IDEA远程调试Tomcat的方法(图文)

    本篇文章主要介绍了详述IntelliJ IDEA远程调试Tomcat的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 基于springboot与axios的整合问题

    基于springboot与axios的整合问题

    这篇文章主要介绍了springboot与axios的整合问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java函数式编程(十二):监控文件修改

    Java函数式编程(十二):监控文件修改

    这篇文章主要介绍了Java函数式编程(十二):监控文件修改,本文是系列文章的第12篇,其它文章请参阅本文底部的相关文章,需要的朋友可以参考下
    2014-09-09
  • 基于MockMvc进行springboot调试(SpringbootTest)

    基于MockMvc进行springboot调试(SpringbootTest)

    这篇文章主要介绍了基于MockMvc进行springboot调试(SpringbootTest),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • minio的原理、部署、操作方法(十分钟精通MinIO)

    minio的原理、部署、操作方法(十分钟精通MinIO)

    MinIO是一个简单易用的云存储服务,可以将文件上传到互联网上,方便在不同地方访问,部署MinIO需要拉取镜像、启动端口、设置账号密码和映射文件地址,在Spring Boot中集成MinIO,需要添加依赖、创建客户端并进行单元测试,感兴趣的朋友一起看看吧
    2025-02-02
  • java导出数据库的全部表到excel

    java导出数据库的全部表到excel

    这篇文章主要为大家详细介绍了java导出数据库的全部表到excel的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • SpringBoot Devtools实现项目热部署的方法示例

    SpringBoot Devtools实现项目热部署的方法示例

    这篇文章主要介绍了SpringBoot Devtools实现项目热部署的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01

最新评论