gpt4 book ai didi

Java使用POI读取.doc文件

转载 作者:行者123 更新时间:2023-12-03 06:25:14 33 4
gpt4 key购买 nike

您好,我正在尝试从 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 文件吗?有什么好的方法可以读取所有类型的文件吗?

最佳答案

使用以下 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使用POI读取.doc文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19358643/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com