複製代碼代碼如下:
包com.cjonline.foundation.cpe.action;
導入Java.io.ByTearRayInputStream;
導入java.io.bytearrayoutputstream;
導入java.io.file;
導入java.io.io.fileinputstream;
導入java.io.io.fileoutputstream;
導入java.io.inputstream;
導入java.io.outputstream;
導入java.util.zip.gzipinputstream;
導入java.util.zip.gzipoutputstream;
公共抽像類Gziputils {
公共靜態最終INT緩衝區= 1024;
公共靜態最終字符串ext =“ .gz”;
/**
*數據壓縮
*
* @param數據
* @返回
* @throws異常
*/
公共靜態字節[] compress(byte []數據)拋出異常{
bytearrayInputStream bais = new bytearrayInputStream(data);
bytearrayoutputstream baos = new bytearrayoutputstream();
//壓縮
壓縮(Bais,Baos);
字節[] output = baos.tobytearray();
baos.flush();
baos.close();
bais.close();
返回輸出;
}
/**
*文件壓縮
*
* @param文件
* @throws異常
*/
公共靜態void compress(文件文件)拋出異常{
壓縮(文件,true);
}
/**
*文件壓縮
*
* @param文件
* @param刪除
*是否刪除原始文件
* @throws異常
*/
公共靜態void Compress(文件文件,布爾刪除)拋出異常{
FileInputStream fis = new FileInputStream(file);
fileOutputStream fos = new FileOutputStream(file.getPath() + ext);
壓縮(FIS,FOS);
fis.close();
fos.flush();
fos.close();
如果(刪除){
file.delete();
}
}
/**
*數據壓縮
*
* @param是
* @param OS
* @throws異常
*/
公共靜態空隙壓縮(Inputstream IS,OutputStream OS)
拋出例外{
gzipoutputstream gos = new GzipoutputStream(OS);
int計數;
字節數據[] = new Byte [buffer];
while((count = is.Read(data,0,buffer))!= -1){
gos.write(數據,0,count);
}
gos.finish();
gos.flush();
gos.close();
}
/**
*文件壓縮
*
* @param路徑
* @throws異常
*/
公共靜態空隙壓縮(字符串路徑)引發異常{
壓縮(路徑,true);
}
/**
*文件壓縮
*
* @param路徑
* @param刪除
*是否刪除原始文件
* @throws異常
*/
公共靜態void compress(字符串路徑,布爾刪除)拋出異常{
文件文件=新文件(路徑);
壓縮(文件,刪除);
}
/**
*數據解壓縮
*
* @param數據
* @返回
* @throws異常
*/
公共靜態字節[] deckompress(byte []數據)拋出異常{
bytearrayInputStream bais = new bytearrayInputStream(data);
bytearrayoutputstream baos = new bytearrayoutputstream();
//解壓縮
解壓縮(Bais,Baos);
data = baos.tobytearray();
baos.flush();
baos.close();
bais.close();
返回數據;
}
/**
*文件解壓縮
*
* @param文件
* @throws異常
*/
公共靜態void deckompress(文件文件)拋出異常{
解壓縮(文件,true);
}
/**
*文件解壓縮
*
* @param文件
* @param刪除
*是否刪除原始文件
* @throws異常
*/
公共靜態void decompress(文件文件,布爾刪除)拋出異常{
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(file.getPath()。替換(ext,,
”));
解壓縮(FIS,FOS);
fis.close();
fos.flush();
fos.close();
如果(刪除){
file.delete();
}
}
/**
*數據解壓縮
*
* @param是
* @param OS
* @throws異常
*/
公共靜態空隙解壓縮(Inputstream IS,outputStream OS)
拋出例外{
gzipinputStream gis =新的gzipinputstream(is);
int計數;
字節數據[] = new Byte [buffer];
while((count = gis.read(data,0,buffer))!= -1){
OS.Write(Data,0,count);
}
gis.close();
}
/**
*文件解壓縮
*
* @param路徑
* @throws異常
*/
公共靜態空隙解壓縮(字符串路徑)引發異常{
解壓縮(路徑,true);
}
/**
*文件解壓縮
*
* @param路徑
* @param刪除
*是否刪除原始文件
* @throws異常
*/
公共靜態void Decompress(字符串路徑,boolean delete)拋出異常{
文件文件=新文件(路徑);
解壓縮(文件,刪除);
}
}