首页 > 编程语言 >java GZIPOutputStream,GZIPInputStream 用法

java GZIPOutputStream,GZIPInputStream 用法

时间:2023-02-07 10:02:38浏览次数:66  
标签:count java GZIPInputStream os GZIPOutputStream data gos


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();
}

标签:count,java,GZIPInputStream,os,GZIPOutputStream,data,gos
From: https://blog.51cto.com/u_15955464/6041285

相关文章

  • 掌握java枚举类型(enum type)
    1背景在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量。之前我们通常利用publicfinalstatic方法定义的代码如......
  • [java] JSON格式校验
    对JSON字符串进行格式校验,不依赖于第三方包packagecom.iaiai.test;importjava.text.CharacterIterator;importjava.text.StringCharacterIterator......
  • [java] 判断两台机器之间网络是否可达
    Java类库判断两台机器之间网络是否可达,常用ping方法来实现。packagecom.iaiai.test;importjava.net.InetAddress;/****<br/>*Title:Test.ja......
  • 用java实现zip压缩
    本来是写到spaceslive上的,可是代码的显示效果确实不怎么好看。在javaeye上试了试代码显示的顺眼多了。今天写了个用java压缩的功能,可以实现对文件......
  • java.lang.SecurityException: Access to default session denied
    {exception=java.lang.SecurityException:Accesstodefaultsessiondenied}java.lang.SecurityException:Accesstodefaultsessiondeniedat......
  • 根据经纬度求两点间距离实现源码(java)
    研究了一下GoogleMap上的根据经纬度求地球表面两点间距离的实现,用java实现了一把,对我国境内的Beijing54,Xian80,WGS84三种坐标系的空间距离计算感......
  • ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type
    用java处理图片的时候,ImageIO读jpg的时候出现exception:bandOffsets.lengthiswrong。我也遇到过,最终也解决啦,把成果跟大家分享。原因可能是JPEG图......
  • java 最短路径算法
    packageorg.iaiai.suanfa;importjava.util.ArrayList;/****<p>*Title:Dijkstra.java*</p>*<p>*Http:iaiai.iteye.com*</p>*<p>*Createtime:2011-8-......
  • java 广度优先
    就是按照正常顺序把tree打出来,假设有个tree是1/\23/\/\4567打印出来就是1,2,3,4,5,6,7;这个就是宽度优先packageorg.iaiai.suanfa;i......
  • java 深度优先搜索(回溯法)
    深度优先遍历类似于树的前序遍历。采用的搜索方法的特点是尽可能先对纵深方向进行搜索。这种搜索方法称为深度优先搜索(Depth-FirstSearch)。相应地,......