ホームページ >Java >&#&チュートリアル >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 を使用して、Zip アーカイブ内の複数のファイル タイプからコンテンツを読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。