复制代码代码如下 :
패키지 com.cjonline.foundation.cpe.action;
import java.io.bytearrayinputstream;
import java.io.BytearRayoutputStream;
import java.io.file;
import java.io.fileInputStream;
import java.io.fileoutputStream;
import java.io.inputstream;
import java.io.outputStream;
import java.util.zip.gzipinputstream;
import java.util.zip.gzipoutputstream;
공개 초록 클래스 gziputils {
공개 정적 최종 int 버퍼 = 1024;
공개 정적 최종 문자열 ext = ".gz";
/**
* 数据压缩
*
* @param 데이터
* @반품
* @throws 예외
*/
public static byte [] compress (byte [] data)는 예외 {
bytearrayinputStream bais = 새로운 BytearRayinputStream (데이터);
BytearRayoutputStream Baos = 새로운 BytearRayoutputStream ();
// 压缩
압축 (bais, baos);
바이트 [] 출력 = baos.tobytearray ();
baos.flush ();
baos.close ();
bais.close ();
리턴 출력;
}
/**
* 文件压缩
*
* @param 파일
* @throws 예외
*/
공개 정적 void compress (파일 파일)는 예외를 던져 {
압축 (파일, true);
}
/**
* 文件压缩
*
* @param 파일
* @param 삭제
* 是否删除原始文件
* @throws 예외
*/
public static void compress (파일 파일, 부울 삭제) 예외 {
fileInputStream fis = 새로운 fileInputStream (file);
fileoutputStream fos = 새 FileOutputStream (file.getPath () + ext);
압축 (fis, fos);
fis.close ();
fos.flush ();
fos.close ();
if (삭제) {
file.delete ();
}
}
/**
* 数据压缩
*
* @param입니다
* @Param OS
* @throws 예외
*/
public static void compress (inputstream is, outputstream os)
예외 {{
gzipoutputStream gos = 새로운 gzipoutputStream (OS);
int count;
바이트 데이터 [] = 새로운 바이트 [버퍼];
while ((count = is.read (data, 0, buffer))! = -1) {
gos.write (data, 0, count);
}
gos.finish ();
gos.flush ();
gos.close ();
}
/**
* 文件压缩
*
* @param 경로
* @throws 예외
*/
공개 정적 무효 압축 (문자열 경로)은 예외를 던져 {
압축 (Path, True);
}
/**
* 文件压缩
*
* @param 경로
* @param 삭제
* 是否删除原始文件
* @throws 예외
*/
공개 정적 무효 압축 (문자열 경로, 부울 삭제) 예외 {
파일 = 새 파일 (Path);
압축 (파일, 삭제);
}
/**
* 数据解压缩
*
* @param 데이터
* @반품
* @throws 예외
*/
public static byte [] decompress (byte [] data)는 예외 {
bytearrayinputStream bais = 새로운 BytearRayinputStream (데이터);
BytearRayoutputStream Baos = 새로운 BytearRayoutputStream ();
// 解压缩
압축 압력 (Bais, Baos);
data = baos.tobytearray ();
baos.flush ();
baos.close ();
bais.close ();
반환 데이터;
}
/**
* 文件解压缩
*
* @param 파일
* @throws 예외
*/
공개 정적 무효 압축 압력 (파일 파일)은 예외를 던지 릅니다 {
압축 압력 (파일, true);
}
/**
* 文件解压缩
*
* @param 파일
* @param 삭제
* 是否删除原始文件
* @throws 예외
*/
public static void decompress (파일 파일, 부울 삭제) 예외 {
fileInputStream fis = 새로운 fileInputStream (file);
fileoutputStream fos = 새 FileOutputStream (file.getPath (). 교체 (ext,
""));
탈 감압 (FIS, FOS);
fis.close ();
fos.flush ();
fos.close ();
if (삭제) {
file.delete ();
}
}
/**
* 数据解压缩
*
* @param입니다
* @Param OS
* @throws 예외
*/
public static void decompress (InputStream IS, OutputStream OS)
예외 {{
gzipinputstream gis = 새로운 gzipinputstream (is);
int count;
바이트 데이터 [] = 새로운 바이트 [버퍼];
while ((count = gis.read (data, 0, buffer))! = -1) {
os.write (data, 0, count);
}
gis.close ();
}
/**
* 文件解压缩
*
* @param 경로
* @throws 예외
*/
공개 정적 무효 압축 압력 (문자열 경로)은 예외를 던지는 {
압축 압력 (Path, True);
}
/**
* 文件解压缩
*
* @param 경로
* @param 삭제
* 是否删除原始文件
* @throws 예외
*/
public static void decompress (문자열 경로, 부울 삭제) 예외 {
파일 = 새 파일 (Path);
압축 압력 (파일, 삭제);
}
}