تنفيذ ضغط وإزالة الضغط من تنسيق ضغط الرمز البريدي من خلال Java API
نسخة الكود كما يلي:
حزمة com.hongyuan.test ؛
استيراد java.io.file ؛
استيراد java.io.fileInputStream ؛
استيراد java.io.fileOutputStream ؛
استيراد java.io.ioException ؛
استيراد java.io.inputstream ؛
استيراد java.io.outputStream ؛
استيراد java.util.enumeration ؛
استيراد java.util.zip.zipentry ؛
استيراد java.util.zip.zipfile ؛
استيراد java.util.zip.zipoutputStream ؛
الفئة العامة Ziptest {
الفراغ الثابت العام (سلسلة [] args) يلقي ioexception {
unsip ("bootstrap.zip") ؛
ZIP ("bootstrap_01.zip" ، "bootstrap/css/bootstrap.css" ، "bootstrap/css/botstrap.min.css") ؛
}
الفراغ الثابت العام unzip (اسم ملف السلسلة) يلقي ioException {
// احصل على كائن ملف مضغوط
Zipfile Zf = new zipfile (اسم الملف) ؛
// نقل إدخالات الملف
التعداد <؟
بينما (items.hasmoreElements ()) {
zipentry item = items.nextElement () ؛
String filepath = zf.getName (). substring (0 ،
ZF.GetName (). LastIndexof ("."))
+ file.separator + item.getName () ؛
ملف filedir = ملف جديد (filepath.substring (0 ،
filepath.lastindexof ("/")) ؛
if (! filedir.exists ()) {
filedir.mkdirs () ؛
}
// قراءة الملف من الدفق
OutputStream Out = fileOutputStream جديد (FilePath) ؛
inputStream في = Zf.GetInputStream (عنصر) ؛
بايت [] temp = new byte [1024] ؛
int len = 0 ؛
بينما ((len = in.read (temp))> 0) {
out.write (temp ، 0 ، len) ؛
}
in.close () ؛
out.close () ؛
}
Zf.Close () ؛
}
ZIP الفراغ الثابت العام (اسم ملف السلسلة ، سلسلة ... ملفات) يلقي ioException {
// بناء دفق إخراج الملف المضغوط
zipoutputstream zos = new zipoutputStream (FileOutputStream جديد (اسم الملف)) ؛
لـ (int i = 0 ، size = files.length ؛ i <size ؛ i ++) {
// إنشاء كيان مضغوط
Zipentry Entry = new zipentry (ملفات [i] .subString (ملفات [i] .lastindexof ("/")+1)) ؛
zos.putnextentry (الدخول) ؛
// محتويات ملف الإخراج في دفق مضغوط
inputStream هو = جديد fileInputStream (ملفات [i]) ؛
عدد int = 0 ؛
Byte [] Buffer = New Byte [1024] ؛
بينما ((count = is.read (buffer))> = 0) {
Zos.Write (العازلة ، 0 ، العد) ؛
}
zos.flush () ؛
Zos.Closeentry () ؛
is.close () ؛
}
}
}