在java中读取.docx文件

我试图在java中读取一个文件,以下是代码:

public void readFile(String fileName){ try { BufferedReader reader= new BufferedReader(new FileReader(fileName)); String line=null; while((line=reader.readLine()) != null ){ System.out.println(line); } }catch (Exception ex){} } 

在txt文件的情况下工作正常。 但是在docx文件的情况下,它正在打印奇怪的字符。 我怎样才能在Java中读取.docx文件。

 import java.io.File; import java.io.FileInputStream; import java.util.List; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; public void readDocxFile() { try { File file = new File("C:/NetBeans Output/documentx.docx"); FileInputStream fis = new FileInputStream(file.getAbsolutePath()); XWPFDocument document = new XWPFDocument(fis); List paragraphs = document.getParagraphs(); for (XWPFParagraph para : paragraphs) { System.out.println(para.getText()); } fis.close(); } catch (Exception e) { e.printStackTrace(); } } 

内部.docx文件被组织为压缩的XML文件,而.doc二进制文件格式。 所以你不能直接读一个。 看看docx4jApache POI

如果您尝试创建或操作.docx文件,请尝试docx4j 以下是源代码

或者去找apachePOI

您可能想要检查Apache POI 。

您无法直接读取docx文件或doc文件。 您需要有一个API来读取word文件。 使用Apache POI http://poi.apache.org/ 。 如果您有任何疑问,请参阅stackoverflow.com上的这个主题如何在java中读取Doc或Docx文件?

你必须有以下6jar:

  1. XMLBeans的-2.3.0.jar
  2. dom4j的-1.6.1.jar
  3. POI-OOXML-3.8-20120326.jar
  4. POI-OOXML-架构 – 3.8-20120326.jar
  5. POI暂存器-3.2-FINAL.jar
  6. POI-3.5-FINAL.jar

码:

 import java.io.File; import java.io.FileInputStream; import java.util.Iterator; import java.util.List; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; public class test { public static void readDocxFile(String fileName) { try { File file = new File(fileName); FileInputStream fis = new FileInputStream(file.getAbsolutePath()); XWPFDocument document = new XWPFDocument(fis); for(int i=0;i