首頁 > Java > java教程 > 如何使用 Apache Tika 讀取 Zip 檔案中多種檔案類型的內容?

如何使用 Apache Tika 讀取 Zip 檔案中多種檔案類型的內容?

Mary-Kate Olsen
發布: 2024-10-28 21:20:30
原創
828 人瀏覽過

How Do I Read Content from Multiple File Types Within a Zip Archive Using Apache Tika?

使用Apache Tika 實作從Zip 中的檔案讀取內容

挑戰:

您渴望寫一個Java 程式,使用Apache Tika 提取並讀取zip 檔案中多個檔案的內容。具體來說,您的 zip 檔案包含文字、PDF 和 docx 檔案的混合。

解決方案:

public class ZipContentExtractor {

    public static void main(String[] args) throws IOException, SAXException, TikaException {
        File zipFile = new File("C:\Users\xxx\Desktop\abc.zip");

        try (ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(zipFile))) {
            ZipEntry entry;
            while ((entry = zipInputStream.getNextEntry()) != null) {
                // Checking file types
                if (entry.getName().endsWith(".txt") || entry.getName().endsWith(".pdf") || entry.getName().endsWith(".docx")) {
                    // Handling text files
                    if (entry.getName().endsWith(".txt")) {
                        BodyContentHandler textHandler = new BodyContentHandler();
                        Parser parser = new AutoDetectParser();
                        parser.parse(zipInputStream, textHandler, new Metadata(), new ParseContext());
                        System.out.println("TXT file content: " + textHandler.toString());
                    }
                    // Handling PDF files
                    else if (entry.getName().endsWith(".pdf")) {
                        Metadata metadata = new Metadata();
                        Parser parser = new PDFParser();
                        parser.parse(zipInputStream, new StreamingContentHandler(), metadata, new ParseContext());
                        System.out.println("PDF file content: " + metadata.get("xmpDM:documentID"));
                    }
                    // Handling DOCX files
                    else {
                        BodyContentHandler textHandler = new BodyContentHandler();
                        Parser parser = new OOXMLParser();
                        parser.parse(zipInputStream, textHandler, new Metadata(), new ParseContext());
                        System.out.println("DOCX file content: " + textHandler.toString());
                    }
                }
            }
        }
    }
}
登入後複製

說明:

  • 程式碼迭代。
  • 對於每個條目,它檢查檔案類型並根據檔案副檔名進行適當處理。
  • 對於文字文件,Apache Tika 的 AutoDetectParser 用於將內容解析為字串。
  • 對於 PDF 文件,PDFParser 用於提取元數據,例如文件 ID。
  • 對於 DOCX 文件, OOXMLParser 用於將內容解析為字串。

以上是如何使用 Apache Tika 讀取 Zip 檔案中多種檔案類型的內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板