前言
最近需要做一些NLP 方面的工作,使用的是Java,在此总结一下使用Java读取Word(.doc)格式文件的方法。
Apache基金会非常厉害,开源工具包POI就可以处理微软家的文档,甚至包括Excel和PowerPoint。我们就使用POI来做。
步骤
下载
https://poi.apache.org/download.html 下载Binary Distribution,并解压
导入
在Intellij IDEA中,点击File--Project Structure--Library,然后添加里边所有的jar包
使用
核心在于org.apache.poi.hwpf.extractor.WordExtractor和org.apache.poi.hwpf.HWPFDocument这两个。
贴上代码
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException; public class Demo {
public void readWordFile(String path) {
File file = null;
WordExtractor extractor = null;
file = new File(path);
try {
HWPFDocument doc = new HWPFDocument(new FileInputStream((file.getAbsolutePath())));
extractor = new WordExtractor(doc);
String fileData = extractor.getText();//此处还有很多别的方法可以使用
System.out.println(fileData);
} catch (IOException e) {
e.printStackTrace();
}
} } public class RunDemo {
public static void main(String[] dd){
Demo d=new Demo();
String path="/home/chyq/Desktop/我的文档.doc";
d.readWordFile(path);
}
}
一些需要说明的
- 如果是docx,将HWPF改成XWPF,基本是一样的
- extractor对象的几个get方法说明:
- getText() :返回String,全文内容
getMainTextboxText() 返回String[],读取的是多个文本框中的内容
getParagraphText() 返回String[],读取的是多个自然段的内容
- 还有读取页眉页脚等方法,更多详细API可以参考:http://book2s.com/java/src/package/org/apache/poi/hwpf/extractor/wordextractor.html#1d7167f4e597fb0328033cb4c51b178b , 这个比官方文档全。
- 读取的图片都没了,表格只保留了文字部分,格式都没有了。其余的格式(换行、回车等)均被保留。