के अंदर फ़ाइलों से सामग्री पढ़ें, मैं एक साधारण जावा प्रोग्राम बनाने की कोशिश कर रहा हूं जो ज़िप फ़ाइल के अंदर फ़ाइल (फाइलों) से सामग्री को पढ़ता है और निकालता है। ज़िप फ़ाइल में 3 फाइलें हैं (txt, pdf, docx)। मुझे इन सभी फ़ाइलों की सामग्री को पढ़ने की जरूरत है और मैं इस उद्देश्य के लिए अपाचे टिका का उपयोग कर रहा हूं।ज़िप फ़ाइल
कोई भी कार्यक्षमता प्राप्त करने के लिए यहां मेरी सहायता कर सकता है। मैं अब तक इस की कोशिश की है, लेकिन कोई सफलता
कोड स्निपेट
public class SampleZipExtract {
public static void main(String[] args) {
List<String> tempString = new ArrayList<String>();
StringBuffer sbf = new StringBuffer();
File file = new File("C:\\Users\\xxx\\Desktop\\abc.zip");
InputStream input;
try {
input = new FileInputStream(file);
ZipInputStream zip = new ZipInputStream(input);
ZipEntry entry = zip.getNextEntry();
BodyContentHandler textHandler = new BodyContentHandler();
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();
while (entry!= null){
if(entry.getName().endsWith(".txt") ||
entry.getName().endsWith(".pdf")||
entry.getName().endsWith(".docx")){
System.out.println("entry=" + entry.getName() + " " + entry.getSize());
parser.parse(input, textHandler, metadata, new ParseContext());
tempString.add(textHandler.toString());
}
}
zip.close();
input.close();
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());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TikaException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
ज़िप फ़ाइल को सीधे अपाचे टिका को क्यों पास न करें? इसके बाद आप ज़िप में प्रत्येक फ़ाइल के लिए रिकर्सिंग पार्सर को कॉल करेंगे, इसलिए आपको कुछ भी विशेष करने की ज़रूरत नहीं है! – Gagravarr
यही वह था जो मैं सोच रहा था लेकिन ऐसा करने के तरीके में पर्याप्त ट्यूटोरियल नहीं मिला। मैं इसके बारे में भी चिंतित हूं - http://www.javamex.com/tutorials/compression/zip_problems.shtml, यह सुनिश्चित नहीं है कि Tika इस समस्या को संबोधित करता है या नहीं। –
Tika उन मुद्दों में से कई को पाने के लिए कॉमन्स संपीड़न का उपयोग करता है – Gagravarr