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

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

我用的是maven構(gòu)建項目,相關(guān)的依賴包會自動導(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文件讀取簡單示例:
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文件讀取簡單示例:
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(); } }
我并沒有在工作中操作過word,這篇博客也只是一時興起所做,因此寫的很簡單。
而最近陸續(xù)有朋友找我詢問相關(guān)的問題,其中有好幾個都在詢問依賴包有哪些,為了避免一再回答這種問題,特將依賴包截圖:

到此這篇關(guān)于java使用poi讀取doc和docx文件的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)java poi讀取doc和docx內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. python對批量WAV音頻進(jìn)行等長分割的方法實現(xiàn)2. 新手學(xué)python應(yīng)該下哪個版本3. 詳細(xì)總結(jié)Java for循環(huán)的那些坑4. python 使用Tensorflow訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)實現(xiàn)鳶尾花分類5. jsp文件下載功能實現(xiàn)代碼6. ajax實現(xiàn)頁面的局部加載7. Java進(jìn)行Appium自動化測試的實現(xiàn)8. uni-app結(jié)合PHP實現(xiàn)單用戶登陸demo及解析9. .net中string類型可以作為lock的鎖對象嗎10. 如何利用Python matplotlib繪制雷達(dá)圖

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