java打开doc_java使用poi读取doc和docx文件

本文介绍了如何使用Java的Apache POI库读取doc和docx文件。针对doc文件,需要导入poi-scratchpad相关依赖,而docx文件则需要poi-ooxml的依赖。通过示例代码展示了读取文件的具体实现,包括HWPFDocument和XWPFDocument的使用。
摘要由CSDN通过智能技术生成

这几天在学习java io流的东西,有一个网友看到博客后问了一个问题,就是说他的doc文档为什么用我所说的方法死活就是乱码。

我一开始以为是他方法问题,结果自己试了之后发现和他的结果一样也是乱码。

于是在网上搜寻了一阵之后才发现原来doc文档和excel一样不能用普通的io流的方法来读取,而是也需要用poi,于是进行了一番尝试后,终于以正确的编码格式读取了这个doc文件。

在网上搜索的过程中发现doc和docx的读取方法是不一样的,于是顺带也学了一下docx文件的简单读取。

一、导包:

doc文件的读取,需要导入poi-scratchpad的jar包和相关依赖包:

135615525_1_20180612102547316

docx文件读取,需要导入poi-ooxml的jar包和相关依赖包:

135615525_2_20180612102547441

我用的是maven构建项目,相关的依赖包会自动导入,maven导包配置如下:

org.apache.poi

poi-ooxml

3.8

org.apache.poi

poi-scratchpad

3.8

1

2

3

4

5

6

7

8

9

10

二、读取文件的代码:

1、doc文件读取简单示例:

public static void readAndWriterTest3() throws IOException {

File file = new File("C:\\Users\\tuzongxun123\\Desktop\\aa.doc");

String str = "";

try {

FileInputStream fis = new FileInputStream(file);

HWPFDocument doc = new HWPFDocument(fis);

String doc1 = doc.getDocumentText();

System.out.println(doc1);

StringBuilder doc2 = doc.getText();

System.out.println(doc2);

Range rang = doc.getRange();

String doc3 = rang.text();

System.out.println(doc3);

fis.close();

} catch (Exception e) {

e.printStackTrace();

}

}1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

2、docx文件读取简单示例:

public static void readAndWriterTest4() throws IOException {

File file = new File("C:\\Users\\tuzongxun123\\Desktop\\aa.docx");

String str = "";

try {

FileInputStream fis = new FileInputStream(file);

XWPFDocument xdoc = new XWPFDocument(fis);

XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);

String doc1 = extractor.getText();

System.out.println(doc1);

fis.close();

} catch (Exception e) {

e.printStackTrace();

}

}1

2

3

4

5

6

7

8

9

10

11

12

13

14

//20171218修改

我并没有在工作中操作过word,这篇博客也只是一时兴起所做,因此写的很简单。

而最近陆续有朋友找我询问相关的问题,其中有好几个都在询问依赖包有哪些,为了避免一再回答这种问题,特将依赖包截图:

135615525_3_20180612102547582

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值