/***
* 压缩GZip
*
*@paramdata
*@return
*/
public static byte[] gZip(byte[] data) {byte[] b = null;try{
ByteArrayOutputStream bos= newByteArrayOutputStream();
GZIPOutputStream gzip= newGZIPOutputStream(bos);
gzip.write(data);
gzip.finish();
gzip.close();
b=bos.toByteArray();
bos.close();
}catch(Exception ex) {
ex.printStackTrace();
}returnb;
}/***
* 解压GZip
*
*@paramdata
*@return
*/
public static byte[] unGZip(byte[] data) {byte[] b = null;try{
ByteArrayInputStream bis= newByteArrayInputStream(data);
GZIPInputStream gzip= newGZIPInputStream(bis);byte[] buf = new byte[1024];int num = -1;
ByteArrayOutputStream baos= newByteArrayOutputStream();while ((num = gzip.read(buf, 0, buf.length)) != -1) {
baos.write(buf,0, num);
}
b=baos.toByteArray();
baos.flush();
baos.close();
gzip.close();
bis.close();
}catch(Exception ex) {
ex.printStackTrace();
}returnb;
}/***
* 压缩Zip
*
*@paramdata
*@return
*/
public static byte[] zip(byte[] data) {byte[] b = null;try{
ByteArrayOutputStream bos= newByteArrayOutputStream();
ZipOutputStream zip= newZipOutputStream(bos);
ZipEntry entry= new ZipEntry("zip");
entry.setSize(data.length);
zip.putNextEntry(entry);
zip.write(data);
zip.closeEntry();
zip.close();
b=bos.toByteArray();
bos.close();
}catch(Exception ex) {
ex.printStackTrace();
}returnb;
}/***
* 解压Zip
*
*@paramdata
*@return
*/
public static byte[] unZip(byte[] data) {byte[] b = null;try{
ByteArrayInputStream bis= newByteArrayInputStream(data);
ZipInputStream zip= newZipInputStream(bis);while (zip.getNextEntry() != null) {byte[] buf = new byte[1024];int num = -1;
ByteArrayOutputStream baos= newByteArrayOutputStream();while ((num = zip.read(buf, 0, buf.length)) != -1) {
baos.write(buf,0, num);
}
b=baos.toByteArray();
baos.flush();
baos.close();
}
zip.close();
bis.close();
}catch(Exception ex) {
ex.printStackTrace();
}returnb;
}/***
* 压缩BZip2
*
*@paramdata
*@return
*/
public static byte[] bZip2(byte[] data) {byte[] b = null;try{
ByteArrayOutputStream bos= newByteArrayOutputStream();
CBZip2OutputStream bzip2= newCBZip2OutputStream(bos);
bzip2.write(data);
bzip2.flush();
bzip2.close();
b=bos.toByteArray();
bos.close();
}catch(Exception ex) {
ex.printStackTrace();
}returnb;
}/***
* 解压BZip2
*
*@paramdata
*@return
*/
public static byte[] unBZip2(byte[] data) {byte[] b = null;try{
ByteArrayInputStream bis= newByteArrayInputStream(data);
CBZip2InputStream bzip2= newCBZip2InputStream(bis);byte[] buf = new byte[1024];int num = -1;
ByteArrayOutputStream baos= newByteArrayOutputStream();while ((num = bzip2.read(buf, 0, buf.length)) != -1) {
baos.write(buf,0, num);
}
b=baos.toByteArray();
baos.flush();
baos.close();
bzip2.close();
bis.close();
}catch(Exception ex) {
ex.printStackTrace();
}returnb;
}/*** 把字节数组转换成16进制字符串
*
*@parambArray
*@return
*/
public static String bytesToHexString(byte[] bArray) {
StringBuffer sb= newStringBuffer(bArray.length);
String sTemp;for (int i = 0; i < bArray.length; i++) {
sTemp= Integer.toHexString(0xFF &bArray[i]);if (sTemp.length() < 2)
sb.append(0);
sb.append(sTemp.toUpperCase());
}returnsb.toString();
}/***jzlib 压缩数据
*
*@paramobject
*@return*@throwsIOException*/
public static byte[] jzlib(byte[] object) {byte[] data = null;try{
ByteArrayOutputStream out= newByteArrayOutputStream();
ZOutputStream zOut= newZOutputStream(out,
JZlib.Z_DEFAULT_COMPRESSION);
DataOutputStream objOut= newDataOutputStream(zOut);
objOut.write(object);
objOut.flush();
zOut.close();
data=out.toByteArray();
out.close();
}catch(IOException e) {
e.printStackTrace();
}returndata;
}/***jzLib压缩的数据
*
*@paramobject
*@return*@throwsIOException*/
public static byte[] unjzlib(byte[] object) {byte[] data = null;try{
ByteArrayInputStream in= newByteArrayInputStream(object);
ZInputStream zIn= newZInputStream(in);byte[] buf = new byte[1024];int num = -1;
ByteArrayOutputStream baos= newByteArrayOutputStream();while ((num = zIn.read(buf, 0, buf.length)) != -1) {
baos.write(buf,0, num);
}
data=baos.toByteArray();
baos.flush();
baos.close();
zIn.close();
in.close();
}catch(IOException e) {
e.printStackTrace();
}returndata;
}public static voidmain(String[] args) {
String s= "this is a test";byte[] b1 =zip(s.getBytes());
System.out.println("zip:" +bytesToHexString(b1));byte[] b2 =unZip(b1);
System.out.println("unZip:" + newString(b2));byte[] b3 =bZip2(s.getBytes());
System.out.println("bZip2:" +bytesToHexString(b3));byte[] b4 =unBZip2(b3);
System.out.println("unBZip2:" + newString(b4));byte[] b5 =gZip(s.getBytes());
System.out.println("bZip2:" +bytesToHexString(b5));byte[] b6 =unGZip(b5);
System.out.println("unBZip2:" + newString(b6));byte[] b7 =jzlib(s.getBytes());
System.out.println("jzlib:" +bytesToHexString(b7));byte[] b8 =unjzlib(b7);
System.out.println("unjzlib:" + newString(b8));
}
}