मुझे लगता है कि आपको ZipOutputStream में रुचि होगी। आप उस स्ट्रीम को लिख सकते हैं, और उसके बाद इसे ज़िप फ़ाइल में लिख सकते हैं।
इसके अलावा, working with compressed (zipped) files in Java के लिए इस ट्यूटोरियल को देखें।
BufferedInputStream origin = null;
FileOutputStream dest = new
FileOutputStream("c:\\zip\\myfigs.zip");
ZipOutputStream out = new ZipOutputStream(new
BufferedOutputStream(dest));
//out.setMethod(ZipOutputStream.DEFLATED);
byte data[] = new byte[BUFFER];
// get a list of files from current directory
File f = new File(".");
String files[] = f.list();
for (int i=0; i<files.length; i++) {
System.out.println("Adding: "+files[i]);
FileInputStream fi = new
FileInputStream(files[i]);
origin = new
BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(files[i]);
out.putNextEntry(entry);
int count;
while((count = origin.read(data, 0,
BUFFER)) != -1) {
out.write(data, 0, count);
}
origin.close();
}
out.close();
मैं इस उदाहरण देखा है, और नहीं लगता था कि यह मैं के लिए क्या देख रहा था। इसके साथ गड़बड़ी करने के बाद, मैं अंत में समझता हूं कि यह क्या करता है। मेरे लिए केवल अंतर यह है कि मैं वास्तव में किसी भी फाइल के माध्यम से पुनरावृत्ति नहीं करूँगा। मैं बस ज़िप फ़ाइल में एक नई प्रविष्टि बनाउंगा, और लिख रहा हूं कि मैं वर्तमान में इस प्रविष्टि में फ़ाइल में क्या लिख रहा हूं। – Andrei
@ एंड्री - हाँ, ऐसा कोई कारण नहीं है कि आपकी ज़िप फ़ाइल में इसके अंदर एक से अधिक फाइलें हों। खुशी हुई यह मदद की! – pkaeding