Mengekstrak Kandungan daripada Fail Dalam Zip Menggunakan Apache Tika
Untuk memenuhi keperluan anda membaca dan mengekstrak kandungan daripada fail dalam arkib zip menggunakan Apache Tika, anda perlu membuat beberapa pelarasan pada kod semasa anda. Walaupun pendekatan anda sebahagian besarnya betul, isunya terletak pada mendapatkan InputStream untuk setiap fail dalam zip.
Berikut ialah versi terkini kod anda yang menangani perkara ini:
<code class="java">import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import org.apache.tika.exception.TikaException; import org.apache.tika.metadata.Metadata; import org.apache.tika.parser.AutoDetectParser; import org.apache.tika.parser.BodyContentHandler; import org.apache.tika.parser.ParseContext; import org.xml.sax.SAXException; public class SampleZipExtractNew { public static void main(String[] args) throws IOException { List<String> tempString = new ArrayList<>(); StringBuffer sbf = new StringBuffer(); File file = new File("C:\Users\xxx\Desktop\abc.zip"); ZipFile zipFile = new ZipFile(file); Enumeration<? extends ZipEntry> entries = zipFile.entries(); BodyContentHandler textHandler = new BodyContentHandler(); Metadata metadata = new Metadata(); Parser parser = new AutoDetectParser(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); try (InputStream inputStream = zipFile.getInputStream(entry)) { if (entry.getName().endsWith(".txt") || entry.getName().endsWith(".pdf") || entry.getName().endsWith(".docx")) { parser.parse(inputStream, textHandler, metadata, new ParseContext()); tempString.add(textHandler.toString()); } } } for (String text : tempString) { System.out.println("Apache Tika - Converted input string : " + text); sbf.append(text); System.out.println("Final text from all the three files " + sbf.toString()); } } }</code>
Dalam semakan ini kod:
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak kandungan daripada fail dalam arkib ZIP menggunakan Apache Tika?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!