复制代码代码如下:
пакет 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 {
общественный статический финальный буфер int = 1024;
публичная статическая конечная строка ext = ".gz";
/**
* 数据压缩
*
* @param данные
* @возвращаться
* @ThrohS Exception
*/
public static byte [] сжатие (byte [] data) бросает исключение {
BytearrayinputStream bais = new Bytearrayinputstream (data);
BytearRayOutputStream BAOS = новый BytearRayOutputStream ();
// 压缩
сжатие (Bais, Baos);
byte [] output = baos.tobytearray ();
baos.flush ();
baos.close ();
bais.close ();
вернуть выход;
}
/**
* 文件压缩
*
* @param file
* @ThrohS Exception
*/
public static void сжатие (файл файла) бросает исключение {
сжатие (файл, true);
}
/**
* 文件压缩
*
* @param file
* @param удалить
* 是否删除原始文件
* @ThrohS Exception
*/
Public Static void Compress (файл файл, логическое удаление) бросает исключение {
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
* @ThrohS Exception
*/
Public Static Void Compress (inputStream IS, Outsstream OS)
бросает исключение {
Gzipoutputstream gos = new gzipoutputstream (OS);
int считать;
байтовые данные [] = новый байт [буфер];
while ((count = is.read (data, 0, buffer))! = -1) {
gos.write (данные, 0, count);
}
gos.finish ();
gos.flush ();
gos.close ();
}
/**
* 文件压缩
*
* @param path
* @ThrohS Exception
*/
Public Static Void Compress (String Path) бросает исключение {
сжатие (путь, верно);
}
/**
* 文件压缩
*
* @param path
* @param удалить
* 是否删除原始文件
* @ThrohS Exception
*/
Public Static Void Compress (String Path, Boolean Delete) бросает исключение {
File file = new File (path);
сжатие (файл, удалить);
}
/**
* 数据解压缩
*
* @param данные
* @возвращаться
* @ThrohS Exception
*/
Общественный статический байт [] декомпресс (Byte [] Data) бросает исключение {
BytearrayinputStream bais = new Bytearrayinputstream (data);
BytearRayOutputStream BAOS = новый BytearRayOutputStream ();
// 解压缩
декомпресс (Bais, Baos);
data = baos.tobytearray ();
baos.flush ();
baos.close ();
bais.close ();
вернуть данные;
}
/**
* 文件解压缩
*
* @param file
* @ThrohS Exception
*/
public static void decompress (файл файл) бросает исключение {
декомпресс (файл, true);
}
/**
* 文件解压缩
*
* @param file
* @param удалить
* 是否删除原始文件
* @ThrohS Exception
*/
public static void decompress (файл файл, логический 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
* @ThrohS Exception
*/
Public Static Void DeCompress (inputStream IS, Outsstream OS)
бросает исключение {
Gzipinputstream gis = new gzipinputstream (is);
int считать;
байтовые данные [] = новый байт [буфер];
while ((count = gis.read (data, 0, buffer))! = -1) {
Os.Write (данные, 0, граф);
}
gis.close ();
}
/**
* 文件解压缩
*
* @param path
* @ThrohS Exception
*/
public static void decompress (String Path) бросает исключение {
декомпресс (путь, истинный);
}
/**
* 文件解压缩
*
* @param path
* @param удалить
* 是否删除原始文件
* @ThrohS Exception
*/
public static void decompress (String Path, Boolean Delete) бросает исключение {
File file = new File (path);
декомпресс (файл, удалить);
}
}