复制代码代码如下:
حزمة com.cjonline.foundation.cpe.action ؛
استيراد java.io.bytearrayinputstream ؛
استيراد java.io.bytearrayoutputstream ؛
استيراد java.io.file ؛
استيراد java.io.fileInputStream ؛
استيراد java.io.fileOutputStream ؛
استيراد java.io.inputstream ؛
استيراد java.io.outputStream ؛
استيراد java.util.zip.gzipinputStream ؛
استيراد java.util.zip.gzipoutputstream ؛
الفئة المجردة العامة gziputils {
العازلة النهائية الثابتة العامة = 1024 ؛
السلسلة النهائية الثابتة العامة ext = ".gz" ؛
/**
* 数据压缩
*
* param بيانات
* @يعود
* throws استثناء
*/
البايت الثابت العام [] ضغط (بايت [] بيانات) يلقي الاستثناء {
bytearrayinputstream bais = جديد bytearrayinputStream (البيانات) ؛
bytearrayoutputstream baoS = جديد bytearrayoutputStream () ؛
// 压缩
ضغط (بايس ، باوس) ؛
byte [] output = baos.tobytearray () ؛
baos.flush () ؛
Baos.Close () ؛
bais.close () ؛
إرجاع الإرجاع ؛
}
/**
* 文件压缩
*
* ملف param
* throws استثناء
*/
ضغط الفراغ الثابت العام (ملف الملف) يلقي الاستثناء {
ضغط (ملف ، صحيح) ؛
}
/**
* 文件压缩
*
* ملف param
* param حذف
* 是否删除原始文件
* throws استثناء
*/
ضغط الفراغ الثابت العام (ملف الملف ، حذف منطقي) يلقي الاستثناء {
FileInputStream fis = جديد fileInputStream (ملف) ؛
fileOutputStream fos = new FileOutputStream (file.getPath () + ext) ؛
ضغط (FIS ، FOS) ؛
fis.close () ؛
fos.flush () ؛
fos.close () ؛
إذا (حذف) {
file.delete () ؛
}
}
/**
* 数据压缩
*
* param هو
* Param OS
* throws استثناء
*/
ضغط الفراغ الثابت العام (InputStream هو ، OutputStream OS)
رمي الاستثناء {
gzipoutputStream GOS = جديد gzipoutputStream (OS) ؛
عدد int
بيانات البايت [] = بايت جديد [عازلة] ؛
بينما ((count = is.read (البيانات ، 0 ، المخزن المؤقت))! = -1) {
Gos.Write (البيانات ، 0 ، العد) ؛
}
Gos.Finish () ؛
gos.flush () ؛
Gos.Close () ؛
}
/**
* 文件压缩
*
* param path
* throws استثناء
*/
ضغط الفراغ الثابت العام (مسار السلسلة) يلقي الاستثناء {
ضغط (المسار ، صحيح) ؛
}
/**
* 文件压缩
*
* param path
* param حذف
* 是否删除原始文件
* throws استثناء
*/
ضغط الفراغ الثابت العام (مسار السلسلة ، الحذف المنطقي) يلقي الاستثناء {
ملف الملف = ملف جديد (مسار) ؛
ضغط (ملف ، حذف) ؛
}
/**
* 数据解压缩
*
* param بيانات
* @يعود
* throws استثناء
*/
البايت الثابت العام [] إلغاء ضغط (بيانات البايت []) يلقي الاستثناء {
bytearrayinputstream bais = جديد bytearrayinputStream (البيانات) ؛
bytearrayoutputstream baoS = جديد bytearrayoutputStream () ؛
// 解压缩
فك الضغط (BAIS ، BAOS) ؛
البيانات = baos.tobytearray () ؛
baos.flush () ؛
Baos.Close () ؛
bais.close () ؛
إرجاع البيانات ؛
}
/**
* 文件解压缩
*
* ملف param
* throws استثناء
*/
إلغاء ضغط الفراغ الثابت العام (ملف) يلقي استثناء {
إلغاء الضغط (ملف ، صحيح) ؛
}
/**
* 文件解压缩
*
* ملف param
* param حذف
* 是否删除原始文件
* throws استثناء
*/
إلغاء ضغط الفراغ الثابت العام (ملف الملف ، الحذف المنطقي) يلقي الاستثناء {
FileInputStream fis = جديد fileInputStream (ملف) ؛
FileOutputStream fos = جديد fileOutputStream (file.getPath (). استبدال (تحويلة ،
"") ؛
فك ضغط (FIS ، FOS) ؛
fis.close () ؛
fos.flush () ؛
fos.close () ؛
إذا (حذف) {
file.delete () ؛
}
}
/**
* 数据解压缩
*
* param هو
* Param OS
* throws استثناء
*/
فك ضغوط الفراغ الثابت العام (InportStream IS ، OutputStream OS)
رمي الاستثناء {
GzipinputStream GIS = GzipinputStream جديد (IS) ؛
عدد int
بيانات البايت [] = بايت جديد [عازلة] ؛
بينما ((count = gis.read (البيانات ، 0 ، المخزن المؤقت))! = -1) {
OS.Write (البيانات ، 0 ، العد) ؛
}
gis.close () ؛
}
/**
* 文件解压缩
*
* param path
* throws استثناء
*/
يفكك الفراغ الثابت العام (مسار السلسلة) استثناء {
فك الضغط (المسار ، صحيح) ؛
}
/**
* 文件解压缩
*
* param path
* param حذف
* 是否删除原始文件
* throws استثناء
*/
إلغاء ضغط الفراغ الثابت العام (مسار السلسلة ، الحذف المنطقي) يلقي الاستثناء {
ملف الملف = ملف جديد (مسار) ؛
إلغاء الضغط (ملف ، حذف) ؛
}
}