java使用poi讀取doc和docx文件的實(shí)現(xiàn)示例
這幾天在學(xué)習(xí)java io流的東西,有一個(gè)網(wǎng)友看到博客后問(wèn)了一個(gè)問(wèn)題,就是說(shuō)他的doc文檔為什么用我所說(shuō)的方法死活就是亂碼。
我一開(kāi)始以為是他方法問(wèn)題,結(jié)果自己試了之后發(fā)現(xiàn)和他的結(jié)果一樣也是亂碼。
于是在網(wǎng)上搜尋了一陣之后才發(fā)現(xiàn)原來(lái)doc文檔和excel一樣不能用普通的io流的方法來(lái)讀取,而是也需要用poi,于是進(jìn)行了一番嘗試后,終于以正確的編碼格式讀取了這個(gè)doc文件。
在網(wǎng)上搜索的過(guò)程中發(fā)現(xiàn)doc和docx的讀取方法是不一樣的,于是順帶也學(xué)了一下docx文件的簡(jiǎn)單讀取。
一、導(dǎo)包:
doc文件的讀取,需要導(dǎo)入poi-scratchpad的jar包和相關(guān)依賴包:

docx文件讀取,需要導(dǎo)入poi-ooxml的jar包和相關(guān)依賴包:

我用的是maven構(gòu)建項(xiàng)目,相關(guān)的依賴包會(huì)自動(dòng)導(dǎo)入,maven導(dǎo)包配置如下:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.8</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.8</version> </dependency>
二、讀取文件的代碼:
1、doc文件讀取簡(jiǎn)單示例:
public static void readAndWriterTest3() throws IOException { File file = new File('C:Userstuzongxun123Desktopaa.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(); } }
2、docx文件讀取簡(jiǎn)單示例:
public static void readAndWriterTest4() throws IOException { File file = new File('C:Userstuzongxun123Desktopaa.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(); } }
我并沒(méi)有在工作中操作過(guò)word,這篇博客也只是一時(shí)興起所做,因此寫(xiě)的很簡(jiǎn)單。
而最近陸續(xù)有朋友找我詢問(wèn)相關(guān)的問(wèn)題,其中有好幾個(gè)都在詢問(wèn)依賴包有哪些,為了避免一再回答這種問(wèn)題,特將依賴包截圖:

到此這篇關(guān)于java使用poi讀取doc和docx文件的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)java poi讀取doc和docx內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 詳解Android studio 動(dòng)態(tài)fragment的用法2. 什么是python的自省3. 解決Android studio xml界面無(wú)法預(yù)覽問(wèn)題4. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁(yè)效果(實(shí)例代碼)5. 圖文詳解vue中proto文件的函數(shù)調(diào)用6. php模擬實(shí)現(xiàn)斗地主發(fā)牌7. Springboot Druid 自定義加密數(shù)據(jù)庫(kù)密碼的幾種方案8. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)9. vue 使用localstorage實(shí)現(xiàn)面包屑的操作10. Vuex localStorage的具體使用

網(wǎng)公網(wǎng)安備