POIFSFileSystem.getRoot()Lorg/apache/poi/poifs/filesystem/DirectoryEntry;

发布于 2021-12-02 23:51:18 字数 2362 浏览 831 评论 1

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.poifs.filesystem.POIFSFileSystem.getRoot()Lorg/apache/poi/poifs/filesystem/DirectoryEntry;
	at org.textmining.text.extraction.WordExtractor.extractText(WordExtractor.java:51)
	at com.fz.util.DocToTxt.toTxt(DocToTxt.java:38)
	at com.fz.util.DocToTxt.wordToTxt(DocToTxt.java:25)
	at com.fz.util.DocToTxt.main(DocToTxt.java:16)

package com.fz.util;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;

import org.textmining.text.extraction.WordExtractor;

/**
 * 测试将指定目录下的doc转换为txt
 * */
public class DocToTxt {
    public static void main(String[] args) {
        String src = "E:/Test";
        String dest = "E:/Test";
        wordToTxt(src, dest);
    }

    public static void wordToTxt(String src, String dest) {
        File dir = new File(src);
        File[] files = dir.listFiles();
        int i = 0;
        for (File file : files) { // 遍历指定目录
            try {
                toTxt(file, dest);
                i++;
            } catch (Exception e) {
                System.out
                        .println("文件" + file.getAbsolutePath() + "转化为txt文件失败");
            }
        }
        System.out.println("成功转化了 " + i + " 个文件");
    }

    private static void toTxt(File file, String dest) throws Exception {
        WordExtractor extractor = new WordExtractor(); // 利用WordExtractor解析Word文档—读取Word文档中的文本
        try {
            String content = extractor.extractText(new FileInputStream(file));
            // 用于测试当前正在转换哪个文档
            System.out.println(file.getName() + "....." + content.length());
            if (content.length() > 1) {
                BufferedWriter writer = new BufferedWriter(new FileWriter(dest
                        + "/" + file.getName().replaceAll("doc", "txt")));
                writer.write(content);
                writer.close();
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
            System.out.println(file.getName() + "出现问题");
            throw e;
        }
    }
}








如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终陌 2021-12-03 15:29:11

官方文档第一条就是你的答案:http://poi.apache.org/faq.html#faq-N10006

简单说就是你的path下面有多个jar包,新老冲突了.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文