Java - ضغط الملفات بتنسيق ZIP

نمط java.util.zip< / span >< / b > طريقة ضغط Zip من خطوتين:
قراءة الملف مع نمط FileInputStream.
أضف اسم الملف إلى نمط ZipEntry< / span> واحفظه كإخراج باستخدام نمط ZipOutputStream.

البرنامج التالي يقرأ الملف "c:\\FIchier0410.log" ويضغطه في "c:\\monFichier.zip".

package com.codeurjava.File; 

import java.io.FileInputStream ؛
import java.io.FileOutputStream;
import java.io.IOException;
استيراد java.util.zip.ZipEntry ؛
استيراد java.util.zip.ZipOutputStream ؛

ملف مضغوط للفئة العامة {

الفراغ العام الثابت الرئيسي (سلسلة [] args) {

النهائي int BUFFER = 2048 ؛

try {
بايت buffer [] = بايت جديد [BUFFER] ؛

fileOutputStream fileos = FileOutputStream الجديد ("C:\\monFichier.zip");
ZipOutputStream zipos = ZipOutputStream الجديد (fileos) ؛
ZipEntry zipentry = ZipEntry الجديد ("c: \\ Fichier0410.log") ؛
zipos.putNextEntry (zipentry);
FileInputStream in = FileInputStream الجديد ("c: \\ Fichier0410.log") ؛

int lec;
بينما ((lec = in.read (buffer)) > 0) {
zipos.write (buffer ، 0 ، lec) ؛
}

in.close();
zipos.closeEntry();
zipos.close();

System.out.println ("تم إنشاء ملف مضغوط!");

}catch(IOException ex){
ex.printStackTrace();
}

}

}
< / pre>وقت التشغيل:

< pre class = "prettyprint lang-java" >تم إنشاء ملف مضغوط!
< / pre>

ضغط ملفات متعددة من مجلد بشكل متكرر

قراءة كافة الملفات والمجلدات الفرعية ل "c:\\ اختبار" وضغطها في "C: \\ monFichier.zip". يقوم هذا البرنامج بضغط الدلائل بشكل متكرر .

package com.codeurjava.File; 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
استيراد java.util.zip.ZipEntry ؛
استيراد java.util.zip.ZipOutputStream ؛

ملف مضغوط للفئة العامة {

السلسلة الثابتة النهائية dossier_src = "c: \\ test" ؛
السلسلة الثابتة النهائية fichier_zip_desc = "monFichier.zip" ؛ <قائمة ثابتة / >< سلسلة> قائمة <سلسلة> ؛

الفراغ الثابت العام الرئيسي (سلسلة [] args) {

النهائي int BUFFER = 2048 ؛

عقدة الملف = ملف جديد (dossier_src);
list = ArrayList () الجديدة ؛ < br / > قائمة الملفات (العقدة) ؛

try {
بايت buffer [] = بايت جديد [BUFFER] ؛

ملف FileOutputStream = جديد FileOutputStream (fichier_zip_desc) ؛
ZipOutputStream zipos = ZipOutputStream الجديد (fileos) ؛

ل (ملف السلسلة: قائمة) {
ZipEntry zipentry = ZipEntry جديد (ملف) ؛
zipos.putNextEntry (zipentry);
FileInputStream في =
FileInputStream الجديد (dossier_src + File.separator + ملف) ؛

int lec ؛
بينما ((lec = in.read (buffer)) > 0) {
zipos.write (buffer ، 0 ، lec) ؛
}

in.close();
System.out.println ("+file+" تمت إضافة الملف")؛
}

zipos.closeEntry();
zipos.close();

System.out.println ("تم إنشاء ملف مضغوط!");

}catch(IOException ex){
ex.printStackTrace();
}

}

قائمة ثابتة عامة <سلسلة > filenode {

//add files
if (node.isFile()){
String file = node.getAbsoluteFile().toString();
مسار السلسلة = file.substring (dossier_src.length () + 1 ، file.length ()) ؛
list.add (path) ؛
}

if(node.isDirectory()){
String[] subFile = node.list();
ل (اسم ملف السلسلة: ملف فرعي) {
filelist (ملف جديد (عقدة ، اسم الملف)) ؛
}
}
قائمة الإرجاع ؛
}
}
< / string >< / string >< / string >< / pre>< / div>
وقت التشغيل:

تمت إضافة ملف img_01.jpg 
ملف pdf \ java.pdf تمت إضافته
table.sql تمت إضافة الملف
ملف Word \ الدورة التدريبية java.docx تمت إضافته
تم إنشاء ملف مضغوط!

الموارد: