java GZIPOutputStream,GZIPInputStream 用法

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

先说压缩实现,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方法!

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

对于解压缩,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();  
}

你可能感兴趣的:(ZipOutputStream)