复制代码代码如下:
包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 Delete
*是否删除原始文件
* @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)抛出异常{
文件文件=新文件(路径);
解压缩(文件,删除);
}
}