使用 GroupDocs.Parser 在 Java 中從 ZIP 檔案提取文字
如果您需要在 Java 應用程式中 從 zip 壓縮檔提取文字,GroupDocs.Parser 提供了簡潔、統一的 API,為您處理繁重的工作。無論是處理電子郵件附件、大量文件上傳,或是備份檔案,本教學將一步步說明——從 Maven 設定到遍歷 ZIP 內每個檔案並取得可讀內容。
快速答覆
- 應該使用哪個函式庫? GroupDocs.Parser for Java。
- 能否從 ZIP 內的每個檔案提取文字? 可以,支援所有 parser 可處理的格式。
- 需要授權嗎? 免費試用可用於評估;正式環境需購買永久授權。
- 記憶體使用是否會成問題? 使用 try‑with‑resources 並逐項處理,可保持佔用低。
- 需要哪個 Java 版本? JDK 8 或以上。
您將學會
- 如何在 Java 中使用 GroupDocs.Parser 從 zip 檔案提取文字。
- 透過 Maven 或直接下載的方式設定函式庫。
- 讀取 zip 附件的實作範例以及檢查容器支援情況。
- 真實案例、效能技巧與除錯建議。
為何選擇 GroupDocs.Parser 進行 ZIP 提取?
- 統一 API – 一個呼叫即可處理數十種文件類型,無需額外解析器。
- 容器感知 – 函式庫可在開始處理前告訴您 ZIP 是否支援提取。
- 資源友好 – 自動串流處理與 try‑with‑resources 可降低記憶體使用。
前置條件
在開始之前,請確保您已具備:
- 已安裝並設定 JDK 8+。
- 如 IntelliJ IDEA 或 Eclipse 等 IDE(任何支援 Java 的編輯器皆可)。
- 基本的 Maven 知識(或手動加入 JAR 的能力)。
必要函式庫、版本與相依性
您需要最新的 GroupDocs.Parser for Java。以下為 Maven 坐標。
Maven 設定
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/parser/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>25.5</version>
</dependency>
</dependencies>
直接下載
亦可從 GroupDocs.Parser for Java releases 下載最新版本。
授權取得
- 免費試用: 先以試用版探索功能。
- 臨時授權: 使用臨時金鑰即可無限制測試。
- 購買授權: 正式上線時取得完整授權,以移除評估限制。
如何在 Java 中從 zip 提取文字
以下將實作分為兩個實用功能:
- 提取 zip 附件 – 從壓縮檔內每個檔案抽取文字。
- 檢查容器提取支援 – 驗證 ZIP 是否可處理並列出其內容。
功能 1 – 提取 Zip 附件
步驟 1:初始化 Parser
try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/SampleZip.zip")) {
// Proceed with extraction logic...
}
步驟 2:遍歷附件並提取文字
Iterable<ContainerItem> attachments = parser.getContainer();
if (attachments == null) {
System.out.println("Container extraction isn't supported");
} else {
for (ContainerItem item : attachments) {
try (Parser attachmentParser = item.openParser()) {
// Attempt to extract text from each zip entity
try (TextReader reader = attachmentParser.getText()) {
String extractedText = reader == null ? "No text" : reader.readToEnd();
System.out.println(extractedText);
}
} catch (UnsupportedDocumentFormatException ex) {
System.out.println("The format of the contained document isn't supported.");
}
}
}
這段程式碼在做什麼?
parser.getContainer()會回傳 ZIP 內所有條目的可遍歷集合。- 對於每個
ContainerItem,我們會開啟專屬的Parser實例(item.openParser())。 attachmentParser.getText()嘗試讀取文字內容;若格式不支援,會捕捉例外並繼續處理。
功能 2 – 驗證容器提取支援
步驟 1:初始化 Parser(同上)
try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/SampleZip.zip")) {
// Check supported operations...
}
步驟 2:列出 ZIP 內的檔案路徑
Iterable<ContainerItem> attachments = parser.getContainer();
if (attachments == null) {
System.out.println("Container extraction isn't supported");
} else {
for (ContainerItem item : attachments) {
System.out.println(item.getFilePath()); // Output the file path of each item
}
}
為何這很重要:
了解內部結構可協助您決定是否處理整個壓縮檔、跳過不支援的檔案,或向使用者提供預覽。
實務應用
- 電子郵件附件處理 – 自動從壓縮的郵件附件中提取並建立索引。
- 文件管理系統 – 接收使用者一次上傳多個檔案的壓縮包,仍能搜尋內容。
- 備份與還原驗證 – 在還原前驗證壓縮文件是否包含預期文字。
效能考量
- 逐項處理: 範例一次讀取一個檔案,可避免大型壓縮檔造成記憶體激增。
- Try‑with‑Resources: 確保每個
Parser與TextReader及時關閉,防止資源泄漏。 - 多執行緒(進階): 對於極大 ZIP,可將迴圈平行化,但每個執行緒必須使用自己的
Parser實例。
常見問題與解決方案
| 問題 | 原因 | 解決方式 |
|---|---|---|
Container extraction isn't supported | ZIP 中包含 parser 無法處理的格式。 | 檢查壓縮檔內的檔案類型;僅支援的格式才能被解析。 |
UnsupportedDocumentFormatException | 嵌套文件的格式未被識別。 | 跳過該檔案,或在壓縮前先將其轉換為支援的類型。 |
| 大型壓縮檔導致記憶體激增 | 同時載入多個檔案。 | 如範例般逐一處理;避免將所有提取的文字存入集合。 |
常見問答
Q: 什麼是 GroupDocs.Parser Java?
A: 這是一套可從多種文件格式(包括 PDF、Office 檔等)提取文字、metadata 與圖片的函式庫。
Q: 能否使用此函式庫從 zip 中提取非文字檔(例如圖片)?
A: 主要功能是文字提取,但亦可透過額外 API 取得圖片與其他二進位內容。
Q: 如何有效處理非常大的 ZIP 檔案?
A: 採用上述逐項迭代方式,將 parser 放在 try‑with‑resources 區塊內,並避免一次載入全部內容。
Q: GroupDocs.Parser 可用於商業應用嗎?
A: 可以,但必須擁有有效的正式授權。
Q: 若遇到問題該向哪裡尋求協助?
A: 可前往免費支援論壇 GroupDocs Support Forum 取得協助。
其他資源
立即開始整合 從 zip 提取文字 功能,讓您的 Java 應用程式能讀取壓縮檔內的每份文件!
最後更新: 2026-02-21
測試版本: GroupDocs.Parser 25.5
作者: GroupDocs