में एक ज़िप फ़ाइल बनाएं मैं एक फ़ाइल ज़िप करने की कोशिश कर रहा हूं (उदाहरण के लिए foo.csv) और इसे किसी सर्वर पर अपलोड करें। मेरे पास एक वर्किंग वर्जन है जो एक स्थानीय प्रति बनाता है और फिर स्थानीय प्रतिलिपि हटा देता है। मैं एक फाइल को कैसे ज़िप करूं ताकि मैं इसे हार्ड ड्राइव पर लिखने के बिना भेज सकूं और इसे पूरी तरह स्मृति में कर सकता हूं?मेमोरी
मेमोरी
उत्तर
कार्य को पूरा करने के लिए ZipOutputStream के साथ ByteArrayOutputStream का उपयोग करें।
आप ज़िप फ़ाइल में शामिल करने के लिए फ़ाइलों को निर्दिष्ट करने के लिए ZipEntry का उपयोग कर सकते हैं।
यहाँ ऊपर वर्गों का उपयोग का एक उदाहरण है,
String s = "hello world";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try(ZipOutputStream zos = new ZipOutputStream(baos)) {
/* File is not on the disk, test.txt indicates
only the file name to be put into the zip */
ZipEntry entry = new ZipEntry("test.txt");
zos.putNextEntry(entry);
zos.write(s.getBytes());
zos.closeEntry();
/* use more Entries to add more files
and use closeEntry() to close each file entry */
} catch(IOException ioe) {
ioe.printStackTrace();
}
अब baos
एक stream
NIO.2 एपीआई के रूप में के रूप में अपने ज़िप फ़ाइल, था जो जावा SE 7 में परिचय होता है, का समर्थन करता है कस्टम फाइल सिस्टम आप https://github.com/marschall/memoryfilesystem और ओरेकल द्वारा प्रदान की गई ज़िप फ़ाइल प्रणाली जैसे इन-मेमोरी फाइल सिस्टम को गठबंधन करने का प्रयास कर सकते हैं।
नोट: मैंने ज़िप फ़ाइल सिस्टम के साथ काम करने के लिए कुछ उपयोगिता कक्षाएं लिखी हैं।
लाइब्रेरी ओपन सोर्स है और यह आपको शुरू करने में मदद कर सकती है। http://softsmithy.sourceforge.net/lib/0.4/docs/tutorial/nio-file/index.html
आप यहाँ से डाउनलोड कर सकते हैं पुस्तकालय: http://sourceforge.net/projects/softsmithy/files/softsmithy/v0.4/
या Maven के साथ: - एक अंत में विधि
<dependency>
<groupId>org.softsmithy.lib</groupId>
<artifactId>softsmithy-lib-core</artifactId>
<version>0.4</version>
</dependency>
- 1. मेमोरी मेमोरी लीक इश्यू
- 2. मेमोरी
- 3. मेमोरी
- 4. मेमोरी
- 5. मेमोरी
- 6. मेमोरी
- 7. मेमोरी
- 8. मेमोरी
- 9. मेमोरी
- 10. मेमोरी
- 11. मेमोरी
- 12. मेमोरी
- 13. मेमोरी
- 14. मेमोरी
- 15. मेमोरी
- 16. मेमोरी
- 17. मेमोरी
- 18. मेमोरी
- 19. मेमोरी
- 20. सेगमेंटेड मेमोरी बनाम फ्लैट मेमोरी
- 21. रेल मेमोरी उच्च मेमोरी उपयोग
- 22. मेमोरी एक्सेस बनाम मेमोरी कॉपी
- 23. कॉस्टा मेमोरी बनाम बनावट मेमोरी बनाम ग्लूबल मेमोरी सीयूडीए
- 24. कोर डेटा मेमोरी उपयोग और मेमोरी चेतावनी
- 25. सक्रिय मेमोरी और निष्क्रिय मेमोरी क्या है
- 26. आईओएस पर मेमोरी स्वैपिंग और वर्चुअल मेमोरी
- 27. कूडा - डिवाइस ग्लोबल मेमोरी से बनावट मेमोरी
- 28. मेमोरी, ईमेल, और मेमोरी से हटाएं
- 29. सी ++ मेमोरी
- 30. मेमोरी लीक
सुनिश्चित करें कि आप पास() को कॉल करते हैं
यहाँ ट्यूटोरियल है ब्लॉक, या बेहतर: जावा 7 के स्वचालित संसाधन प्रबंधन का उपयोग करें। – Puce
@Puce: मेरा उद्देश्य केवल एक स्निपेट दिखाना था, लेकिन आपकी टिप्पणी के बाद मुझे लगा कि एक और संरचित कोड जोड़ना अच्छा होगा। टिप्पणी के लिए धन्यवाद .. :) –
@ ब्लैकपैंथर क्या आप स्थानीय निर्देशिका में मूल फ़ाइल मौजूद होने के लिए विस्तृत संस्करण दिखा सकते हैं/विस्तृत संस्करण दिखा सकते हैं। –