复制代码代码如下::
Paket com.cjonline.foundation.cpe.Action;
importieren java.io.BytearrayInputStream;
importieren java.io.BytearrayoutputStream;
Import Java.io.file;
import Java.io.FileInputStream;
importieren java.io.fileoutputStream;
importieren java.io.inputstream;
importieren java.io.outputstream;
import Java.util.zip.gzipinputStream;
import Java.util.zip.gzipoutputStream;
öffentliche abstrakte Klasse Gziputils {
public static final int puffer = 1024;
public static final String ext = ".gz";
/**
* 数据压缩
*
* @param Daten
* @zurückkehren
* @throws Ausnahme
*/
public static byte [] compress (byte [] data) löst Ausnahme {aus
BytearrayInputStream BAIS = Neue BytearrayInputStream (Daten);
BytearrayoutputStream baos = new bytearrayoutputStream ();
// 压缩
Kompress (Bais, Baos);
byte [] output = baos.tobytearray ();
baos.flush ();
baos.close ();
bais.close ();
Rückgabeausgabe;
}
/**
* 文件压缩
*
* @param Datei
* @throws Ausnahme
*/
public static void Compress (Dateidatei) löst Ausnahme {aus {
Kompress (Datei, true);
}
/**
* 文件压缩
*
* @param Datei
* @param löschen
* 是否删除原始文件
* @throws Ausnahme
*/
public static void Compress (Dateidatei, Boolean Delete) löst eine Ausnahme {aus {
FileInputStream fis = new FileInputStream (Datei);
FileOutputStream fos = new FileOutputStream (Datei.getPath () + ext);
Kompress (FIS, FOS);
fis.close ();
fos.flush ();
fos.close ();
if (löschen) {
Datei.delete ();
}
}
/**
* 数据压缩
*
* @param ist
* @param os
* @throws Ausnahme
*/
öffentliche statische Hohlraumkompresse (InputStream IS, OutputStream OS)
Ausnahme ausnahme {
GzipoutputStream goS = new GzipoutputStream (OS);
int Count;
Byte -Daten [] = neues Byte [Puffer];
while ((count = is.read (Daten, 0, Puffer))! = -1) {
gos.write (Daten, 0, count);
}
gos.finish ();
gos.flush ();
gos.close ();
}
/**
* 文件压缩
*
* @param Pfad
* @throws Ausnahme
*/
public static void Compress (String Pfad) löst Ausnahme {aus {
Kompress (Pfad, wahr);
}
/**
* 文件压缩
*
* @param Pfad
* @param löschen
* 是否删除原始文件
* @throws Ausnahme
*/
public static void Compress (String Pfad, boolean delete) löst Ausnahme {aus {
Datei Datei = neue Datei (Pfad);
Kompress (Datei, löschen);
}
/**
* 数据解压缩
*
* @param Daten
* @zurückkehren
* @throws Ausnahme
*/
öffentliches statisches Byte [] decompress (byte [] data) löst Ausnahme {aus
BytearrayInputStream BAIS = Neue BytearrayInputStream (Daten);
BytearrayoutputStream baos = new bytearrayoutputStream ();
// 解压缩
Dekompress (Bais, Baos);
Data = baos.tobytearray ();
baos.flush ();
baos.close ();
bais.close ();
Daten zurückgeben;
}
/**
* 文件解压缩
*
* @param Datei
* @throws Ausnahme
*/
public static void decompress (Dateidatei) löst Ausnahme {aus {
dekomprimieren (Datei, true);
}
/**
* 文件解压缩
*
* @param Datei
* @param löschen
* 是否删除原始文件
* @throws Ausnahme
*/
public static void decompress (Dateidatei, boolean delete) löst eine Ausnahme {aus {
FileInputStream fis = new FileInputStream (Datei);
FileOutputStream fos = new FileOutputStream (Datei.getPath (). Ersetzen (ext,
""));
Dekompress (FIS, FOS);
fis.close ();
fos.flush ();
fos.close ();
if (löschen) {
Datei.delete ();
}
}
/**
* 数据解压缩
*
* @param ist
* @param os
* @throws Ausnahme
*/
öffentliche statische Leere Dekompress (InputStream IS, OutputStream OS)
Ausnahme ausnahme {
GzipinputStream gis = neuer gzipinputStream (IS);
int Count;
Byte -Daten [] = neues Byte [Puffer];
while ((count = gis.read (Daten, 0, Puffer))! = -1) {
os.write (Daten, 0, count);
}
gis.close ();
}
/**
* 文件解压缩
*
* @param Pfad
* @throws Ausnahme
*/
public static void decompress (String Pfad) löst Ausnahme {aus {
dekomprimieren (Pfad, wahr);
}
/**
* 文件解压缩
*
* @param Pfad
* @param löschen
* 是否删除原始文件
* @throws Ausnahme
*/
public static void decompress (String Pfad, boolean delete) löst eine Ausnahme {aus {
Datei Datei = neue Datei (Pfad);
dekomprimieren (Datei, löschen);
}
}