复制代码代码如下:
パッケージ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 {
public static final int buffer = 1024;
public static final string ext = ".gz";
/**
*数据压缩
*
* @paramデータ
* @戻る
* @Throws例外
*/
public static byte [] Compress(byte [] data)スロー例外{
bytearrayinputStream bais = new bytearrayinputStream(data);
bytearrayoutputStream baos = new bytearrayoutputStream();
//压缩
Compress(Bais、Baos);
byte [] output = baos.tobytearray();
baos.flush();
baos.close();
bais.close();
返品出力;
}
/**
*文件压缩
*
* @paramファイル
* @Throws例外
*/
public static void Compress(ファイルファイル)スロー例外{
Compress(file、true);
}
/**
*文件压缩
*
* @paramファイル
* @param delete
*是否删除原始文件
* @Throws例外
*/
public static void Compress(ファイルファイル、boolean delete)スロー例外{
fileInputStream fis = new fileInputStream(file);
fileoutputStream fos = new fileoutputStream(file.getPath() + ext);
圧縮(FIS、FOS);
fis.close();
fos.flush();
fos.close();
if(delete){
file.delete();
}
}
/**
*数据压缩
*
* @paramはです
* @Param OS
* @Throws例外
*/
public static void Compress(inputstream is、outputstream os)
例外をスローする{
gzipoutputStream gos = new gzipoutputStream(os);
int count;
バイトデータ[] = new byte [buffer];
while((count = is.read(data、0、buffer))!= -1){
gos.write(data、0、count);
}
gos.finish();
gos.flush();
gos.close();
}
/**
*文件压缩
*
* @param Path
* @Throws例外
*/
public static void Compress(String Path)スロー例外{
Compress(Path、True);
}
/**
*文件压缩
*
* @param Path
* @param delete
*是否删除原始文件
* @Throws例外
*/
public static void Compress(String Path、Boolean Delete)スロー例外{
file file = new file(path);
Compress(ファイル、削除);
}
/**
*数据解压缩
*
* @paramデータ
* @戻る
* @Throws例外
*/
public static byte [] decompress(byte [] data)スロー例外{
bytearrayinputStream bais = new bytearrayinputStream(data);
bytearrayoutputStream baos = new bytearrayoutputStream();
//解压缩
Decompress(Bais、Baos);
data = baos.tobytearray();
baos.flush();
baos.close();
bais.close();
データを返す;
}
/**
*文件解压缩
*
* @paramファイル
* @Throws例外
*/
public static void decompress(ファイルファイル)スロー例外{
Decompress(file、true);
}
/**
*文件解压缩
*
* @paramファイル
* @param delete
*是否删除原始文件
* @Throws例外
*/
public static void decompress(ファイルファイル、boolean delete)スロー例外{
fileInputStream fis = new fileInputStream(file);
fileoutputStream fos = new fileoutputStream(file.getPath()。交換(ext、
""));
減圧(FIS、FOS);
fis.close();
fos.flush();
fos.close();
if(delete){
file.delete();
}
}
/**
*数据解压缩
*
* @paramはです
* @Param OS
* @Throws例外
*/
public static void decompress(inputstream is、outputstream os)
例外をスローする{
gzipinputStream gis = new gzipinputStream(is);
int count;
バイトデータ[] = new byte [buffer];
while((count = gis.read(data、0、buffer))!= -1){
os.write(data、0、count);
}
gis.close();
}
/**
*文件解压缩
*
* @param Path
* @Throws例外
*/
public static void decompress(String Path)スロー例外{
Decompress(Path、True);
}
/**
*文件解压缩
*
* @param Path
* @param delete
*是否删除原始文件
* @Throws例外
*/
public static void decompress(String Path、Boolean Delete)スロー例外{
file file = new file(path);
Decompress(ファイル、削除);
}
}