GZIPUtils 压缩解压缩


public class GZIPUtils {    
/**     * 使用gzip进行压缩     */   
public static String compress(String primStr) {     
if (primStr == null || primStr.length() == 0) {          
return primStr;       
}     
ByteArrayOutputStream out = new ByteArrayOutputStream();    
GZIPOutputStream gzip = null;     
try {        
gzip = new GZIPOutputStream(out);     
gzip.write(primStr.getBytes());     
} catch (IOException e) {   
e.printStackTrace();    
} finally {         
if (gzip != null) {             
try {               
gzip.close();            
} catch (IOException e) {     
e.printStackTrace();           
}          
}     
}      
return new sun.misc.BASE64Encoder().encode(out.toByteArray());    
}   
/**     * 使用gzip进行解压缩     */  
public static String uncompress(String compressedStr) {    
if (compressedStr == null) {      
return null;    
}      
ByteArrayOutputStream out = new ByteArrayOutputStream();     
ByteArrayInputStream in = null;    
GZIPInputStream ginzip = null;     
byte[] compressed = null;      
String decompressed = null;    
try {          
compressed = new 
sun.misc.BASE64Decoder().decodeBuffer(compressedStr);      
in = new ByteArrayInputStream(compressed);       
ginzip = new GZIPInputStream(in);      
byte[] buffer = new byte[1024];      
int offset = -1;       
while ((offset = ginzip.read(buffer)) != -1) {           
out.write(buffer, 0, offset);          
}           
decompressed = out.toString();     
} catch (IOException e) {    
e.printStackTrace();     
} finally {        
if (ginzip != null) {         
try {                  
ginzip.close();             
} catch (IOException e) {        
}            }          
if (in != null) {        
try {                 
in.close();           
} catch (IOException e) {         
}            }        
try {                out.close();     
} catch (IOException e) {      
}       
}      
return decompressed;   
}   
public static void main(String[] args) {   
String str =                
"1888888888888888888888884444444444444444444444444444443333333333333333332222222222222222288888888888888884444444444444444444444444443333d888888888888888866666";      
System.out.println("原字符串:" + str);    
System.out.println("原长度:" + str.length());    
String compress = GZIPUtils.compress(str);    
System.out.println("压缩后字符串:" + compress);   
System.out.println("压缩后字符串长度:" + compress.length());    
String string = GZIPUtils.uncompress(compress);       
System.out.println("解压缩后字符串:" + string);      
System.out.println("解压缩后字符串:" + str);   
}}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值