区块链技术博客
www.b2bchain.cn

Java使用POI读取.doc文件 – java程序员分享

D0b2wT.gif

本文介绍了Java使用POI读取.doc文件 – java程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

嗨,我正在尝试从doc和docx文件读取文本,对于doc文件,我正在这样做

package test; import java.io.File; import java.io.FileInputStream; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.extractor.WordExtractor;  public class ReadFile { public static void main(String[] args) {         File file = null;         WordExtractor extractor = null;         try {              file = new File("C:\Users\rijo\Downloads\r.doc");             FileInputStream fis = new FileInputStream(file.getAbsolutePath());             HWPFDocument document = new HWPFDocument(fis);             extractor = new WordExtractor(document);             String fileData = extractor.getText();             System.out.println(fileData);         } catch (Exception exep) {         }     } } 

但这给了我一个org/apache/poi/OldFileFormatException异常。

任何想法如何解决这个问题?

我还需要阅读Docx和PDF文件吗?任何读取所有类型文件的好方法吗?

java大神给出的解决方案

使用以下jar(以防版本号在此处起作用):

dom4j-1.7-20060614 poi-3.9-20121203 poi-ooxml-3.9-20121203 poi-ooxml-schemas-3.9-20121203 poi-scratchpad-3.9-20121203 xmlbeans-2.4.0 

我输入了:

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException;  import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.extractor.WordExtractor;  public class SO { public static void main(String[] args){              //Alternate between the two to check what works.     //String FilePath = "D:\Users\username\Desktop\Doc1.docx";     String FilePath = "D:\Users\username\Desktop\Bob.doc";     FileInputStream fis;      if(FilePath.substring(FilePath.length() -1).equals("x")){ //is a docx     try {         fis = new FileInputStream(new File(FilePath));         XWPFDocument doc = new XWPFDocument(fis);         XWPFWordExtractor extract = new XWPFWordExtractor(doc);         System.out.println(extract.getText());     } catch (IOException e) {          e.printStackTrace();     }     } else { //is not a docx         try {             fis = new FileInputStream(new File(FilePath));             HWPFDocument doc = new HWPFDocument(fis);             WordExtractor extractor = new WordExtractor(doc);             System.out.println(extractor.getText());         } catch (IOException e) {             e.printStackTrace();         }     }   } } 

这使我可以分别从.docx和.doc读取文本。如果这在您的PC上不起作用,则您使用的外部jar可能有问题。

试一试:)
祝好运!

java:继承 – java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

Java-如何将此字符串转换为日期? – java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…

如何使用BorderLayout(Java)扩展JTextField – java

我有一个Java程序,其中使用的是JTextField,但如果我未指定默认大小,则其宽度为0。我将其插入BorderLayout中,因此如何制作它展开以填充整个容器? java大神给出的解决方案 在上面的示例中,文本字段将正常工作。但是,如果您插入EAST或WEST,则将不起作用。import java.awt.BorderLayout; import ja…

查看抽象类的方法是否未被扩展类之一覆盖的方法 – java

我有一个抽象类,比如AbstractClass和扩展该抽象类的多个其他类(700多个)。 AbstractClass有一个方法,比方说baseMethod(),它不是抽象方法。许多类(500+)覆盖该方法并具有自己的实现。现在,通过eclipse,我可以很容易地看到通过Ctrl+Shift+G覆盖该方法的方法,但是除了手动以外,还有其他方法可以看到不覆盖该方…

从较小的字节数组(Java)进行长时间转换 – java

我正在尝试将字节数组转换为long,但是接收到BufferUnderflowException ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); byte[] arg1 = new byte[] {0x04, (byte)0xB0}; buffer.put(arg1, 0, arg1.length); …

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Java使用POI读取.doc文件 – java程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们