复制代码代码如下:
pacote com.cjonline.foundation.cpe.action;
importar java.io.byteArrayInputStream;
importar java.io.byteArrayOutputStream;
importar java.io.file;
importar java.io.fileInputStream;
importar java.io.fileOutputStream;
importar java.io.inputStream;
importar java.io.OutputStream;
importar java.util.zip.gzipinputStream;
importar java.util.zip.gzipOutputStream;
classe abstrata pública Gziputils {
public static final int buffer = 1024;
public static final string ext = ".gz";
/**
* 数据压缩
*
* Dados @param
* @retornar
* @Throws Exception
*/
public static byte [] compact (byte [] dados) lança exceção {
ByteArrayInputStream Bais = new ByteArrayInputStream (Data);
ByteArrayOutputStream baos = new ByteArrayOutputStream ();
// 压缩
compactar (Bais, Baos);
byte [] output = baos.tobytearray ();
baos.flush ();
baos.close ();
bais.close ();
saída de retorno;
}
/**
* 文件压缩
*
* arquivo @param
* @Throws Exception
*/
public static void Compress (arquivo de arquivo) lança exceção {
compactar (arquivo, true);
}
/**
* 文件压缩
*
* arquivo @param
* @param delete
* 是否删除原始文件
* @Throws Exception
*/
public static void Compress (arquivo de arquivo, exclusão boolean) lança exceção {
FileInputStream fis = new FileInputStream (File);
FileOutputStream fos = new FileOutputStream (File.getPath () + ext);
compactar (fis, fos);
fis.close ();
fos.flush ();
fos.close ();
if (delete) {
file.Delete ();
}
}
/**
* 数据压缩
*
* @param é
* @param os
* @Throws Exception
*/
Compressa estática pública (InputStream é, O outputStream OS)
joga exceção {
GzipOutputStream Gos = new GzipOutputStream (OS);
int contagem;
byte dados [] = novo byte [buffer];
while ((count = is.read (dados, 0, buffer))! = -1) {
Gos.write (dados, 0, contagem);
}
Gos.finish ();
Gos.flush ();
Gos.close ();
}
/**
* 文件压缩
*
* @param caminho
* @Throws Exception
*/
public static void Compress (caminho da string) lança exceção {
compactar (caminho, verdadeiro);
}
/**
* 文件压缩
*
* @param caminho
* @param delete
* 是否删除原始文件
* @Throws Exception
*/
public static void Compress (caminho da string, exclusão booleana) lança exceção {
Arquivo de arquivo = novo arquivo (caminho);
compactar (arquivo, excluir);
}
/**
* 数据解压缩
*
* Dados @param
* @retornar
* @Throws Exception
*/
public static byte [] descompacte (byte [] dados) lança exceção {
ByteArrayInputStream Bais = new ByteArrayInputStream (Data);
ByteArrayOutputStream baos = new ByteArrayOutputStream ();
// 解压缩
descomprimir (Bais, Baos);
dados = baos.tobytearray ();
baos.flush ();
baos.close ();
bais.close ();
retornar dados;
}
/**
* 文件解压缩
*
* arquivo @param
* @Throws Exception
*/
public static void descompacte (arquivo de arquivo) lança exceção {
descomprimir (arquivo, true);
}
/**
* 文件解压缩
*
* arquivo @param
* @param delete
* 是否删除原始文件
* @Throws Exception
*/
public static void descompressa (arquivo de arquivo, exclusão boolean) lança exceção {
FileInputStream fis = new FileInputStream (File);
FileOutputStream fos = new FileOutputStream (File.getPath (). Substituir (ext,
""));
descomprimir (fis, fos);
fis.close ();
fos.flush ();
fos.close ();
if (delete) {
file.Delete ();
}
}
/**
* 数据解压缩
*
* @param é
* @param os
* @Throws Exception
*/
Public Static Void descompacte (InputStream é, O outputStream OS)
joga exceção {
GzipinputStream Gis = new GzipinputStream (IS);
int contagem;
byte dados [] = novo byte [buffer];
while ((count = gis.read (dados, 0, buffer))! = -1) {
OS.Write (dados, 0, contagem);
}
gis.close ();
}
/**
* 文件解压缩
*
* @param caminho
* @Throws Exception
*/
public static void descompressa (caminho da string) lança exceção {
descomprimir (caminho, verdadeiro);
}
/**
* 文件解压缩
*
* @param caminho
* @param delete
* 是否删除原始文件
* @Throws Exception
*/
Public Static Void descompactar (caminho da string, exclusão booleana) lança exceção {
Arquivo de arquivo = novo arquivo (caminho);
descomprimir (arquivo, excluir);
}
}