Extraire du contenu de fichiers dans une archive Zip à l'aide d'Apache Tika
Pour répondre à votre besoin de lire et d'extraire le contenu de fichiers dans une archive Zip à l'aide Apache Tika, vous devrez apporter quelques ajustements à votre code actuel. Bien que votre approche soit en grande partie correcte, le problème réside dans l'obtention du InputStream pour chaque fichier du zip.
Voici une version mise à jour de votre code qui résout ce problème :
<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>
Dans cette version révisée code :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!