嘿,朋友们!在 Java 开发里,有时候咱得读取 Word 文档里的内容,这在处理合同、报告等文件时特别有用。咱可以根据 Word 文档的格式,用不同的库来实现读取功能。下面就详细说说 .doc
和 .docx
这两种常见格式文档的读取方法。
1. 读取 .doc
格式的 Word 文档
引入依赖
如果用 Maven 管理项目,在 pom.xml
里添加 Apache POI 的依赖:
XML
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>5.2.3</version>
</dependency>
代码示例
java
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadDocFile {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("example.doc")) {
// 创建 HWPFDocument 对象来表示 .doc 文档
HWPFDocument document = new HWPFDocument(fis);
// 创建 WordExtractor 对象用于提取文档内容
WordExtractor extractor = new WordExtractor(document);
// 获取文档的文本内容
String content = extractor.getText();
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
System.out.println("读取 .doc 文件失败:" + e.getMessage());
}
}
}
代码解释
-
FileInputStream fis = new FileInputStream("example.doc")
:创建一个文件输入流,用来读取example.doc
文件。 -
HWPFDocument document = new HWPFDocument(fis)
:用HWPFDocument
类创建一个文档对象,它能处理.doc
格式的文档。 -
WordExtractor extractor = new WordExtractor(document)
:创建WordExtractor
对象,它可以从文档对象里提取文本内容。 -
String content = extractor.getText()
:调用getText()
方法获取文档的全部文本内容,然后打印出来。
2. 读取 .docx
格式的 Word 文档
引入依赖
同样在 pom.xml
里添加 Apache POI 的依赖:
XML
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
代码示例
java
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadDocxFile {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("example.docx")) {
// 创建 XWPFDocument 对象来表示 .docx 文档
XWPFDocument document = new XWPFDocument(fis);
StringBuilder content = new StringBuilder();
// 遍历文档中的每个段落
for (XWPFParagraph paragraph : document.getParagraphs()) {
// 遍历段落中的每个文本运行对象
for (XWPFRun run : paragraph.getRuns()) {
content.append(run.getText(0));
}
content.append("\n");
}
System.out.println(content.toString());
} catch (IOException e) {
e.printStackTrace();
System.out.println("读取 .docx 文件失败:" + e.getMessage());
}
}
}
代码解释
-
FileInputStream fis = new FileInputStream("example.docx")
:创建文件输入流读取example.docx
文件。 -
XWPFDocument document = new XWPFDocument(fis)
:用XWPFDocument
类创建文档对象,它专门处理.docx
格式的文档。 -
通过两层循环,外层遍历文档里的每个段落,内层遍历段落里的每个文本运行对象,把文本内容添加到
StringBuilder
里,最后打印出来。
嘿,朋友们!有了上面的方法,咱就能用 Java 轻松读取不同格式的 Word 文档内容啦。赶紧动手试试,让你的程序也能和 Word 文档"交流"起来!