java gzip压缩解压缩GZIPOutputStream,GZIPInputStream 用法介绍

2019-09-13 10:02:39 | 编辑

GZIP常常用在linxu环境下,是一种非常简单的压缩算法。在java实现API中,它仅仅包含两个实现类:GZIPInputStream和GZIPOutputStream。 
GZIPOutputStream类用于压缩 
GZIPInputStream类用于解压缩 

1.压缩实现代码

GZIPOutputStream只有一个方法用于压缩,就是带定长的write方法。简单调用如下文所示:



/** 
 * 数据压缩 
 *  
 * @param is 
 * @param os 
 * @throws Exception 
 */  
public static void compress(InputStream is, OutputStream os)  
        throws Exception {  
  
    GZIPOutputStream gos = new GZIPOutputStream(os);  
  
    int count;  
    byte data[] = new byte[BUFFER];  
    while ((count = is.read(data, 0, BUFFER)) != -1) {  
        gos.write(data, 0, count);  
    }  
  
    gos.finish();  
  
    gos.flush();  
    gos.close();  
}


记得完成操作后,调用finish方法和flush方法! 

核心的压缩实现就这么多! 

2.解压缩实现代码

GZIPInputStream也对应GZIPOutputStream提供了一个带定长的read方法。简单调用如下文所示:

/** 
 * 数据解压缩 
 *  
 * @param is 
 * @param os 
 * @throws Exception 
 */  
public static void decompress(InputStream is, OutputStream os)  
        throws Exception {  
  
    GZIPInputStream gis = new GZIPInputStream(is);  
  
    int count;  
    byte data[] = new byte[BUFFER];  
    while ((count = gis.read(data, 0, BUFFER)) != -1) {  
        os.write(data, 0, count);  
    }  
  
    gis.close();  
}



登录后即可回复 登录 | 注册
    
关注编程学问公众号