本段代码只是做了简单的测试,看是否可行,此处仅作笔记。适应用场合,比如数据库,数据缓存。压缩解压肯定是有资源消耗的! 当数据小于500byte时就没有压缩的必要了

@Test
public void zip() throws Exception{
StringBuffer sb = new StringBuffer();
sb.append("测试清单 4 和 5,编译类文件并运行类Zip来创建一个压缩档案(程序会计算出checksum值并显示在屏幕上),然后运行UnZip类来解压缩这个档案(屏幕上同样会打印出一个checksum值)。两个值必须完全相同,否则说明出错了。Checksums在数据校验方面非常有用。例如,你可以创建一个ZIP文件,然后连同checksum值一同传递给你的朋友。你的朋友解压缩文件后,将生成的checksum值与你提供的作一比较,如果相同则说明在传递过程中没有发生错误。");
sb.append("测试清单 4 和 5,编译类文件并运行类Zip来创建一个压缩档案(程序会计算出checksum值并显示在屏幕上),然后运行UnZip类来解压缩这个档案(屏幕上同样会打印出一个checksum值)。两个值必须完全相同,否则说明出错了。Checksums在数据校验方面非常有用。例如,你可以创建一个ZIP文件,然后连同checksum值一同传递给你的朋友。你的朋友解压缩文件后,将生成的checksum值与你提供的作一比较,如果相同则说明在传递过程中没有发生错误。");
sb.append("测试清单 4 和 5,编译类文件并运行类Zip来创建一个压缩档案(程序会计算出checksum值并显示在屏幕上),然后运行UnZip类来解压缩这个档案(屏幕上同样会打印出一个checksum值)。两个值必须完全相同,否则说明出错了。Checksums在数据校验方面非常有用。例如,你可以创建一个ZIP文件,然后连同checksum值一同传递给你的朋友。你的朋友解压缩文件后,将生成的checksum值与你提供的作一比较,如果相同则说明在传递过程中没有发生错误。");
sb.append("测试清单 4 和 5,编译类文件并运行类Zip来创建一个压缩档案(程序会计算出checksum值并显示在屏幕上),然后运行UnZip类来解压缩这个档案(屏幕上同样会打印出一个checksum值)。两个值必须完全相同,否则说明出错了。Checksums在数据校验方面非常有用。例如,你可以创建一个ZIP文件,然后连同checksum值一同传递给你的朋友。你的朋友解压缩文件后,将生成的checksum值与你提供的作一比较,如果相同则说明在传递过程中没有发生错误。");
sb.append("测试清单 4 和 5,编译类文件并运行类Zip来创建一个压缩档案(程序会计算出checksum值并显示在屏幕上),然后运行UnZip类来解压缩这个档案(屏幕上同样会打印出一个checksum值)。两个值必须完全相同,否则说明出错了。Checksums在数据校验方面非常有用。例如,你可以创建一个ZIP文件,然后连同checksum值一同传递给你的朋友。你的朋友解压缩文件后,将生成的checksum值与你提供的作一比较,如果相同则说明在传递过程中没有发生错误。");
sb.append("测试清单 4 和 5,编译类文件并运行类Zip来创建一个压缩档案(程序会计算出checksum值并显示在屏幕上),然后运行UnZip类来解压缩这个档案(屏幕上同样会打印出一个checksum值)。两个值必须完全相同,否则说明出错了。Checksums在数据校验方面非常有用。例如,你可以创建一个ZIP文件,然后连同checksum值一同传递给你的朋友。你的朋友解压缩文件后,将生成的checksum值与你提供的作一比较,如果相同则说明在传递过程中没有发生错误。");

//测试使用对象进行压缩,
Preson preson1 = new Preson("zhansan","往外",22,sb.toString());
Preson preson2 = new Preson("zhansan2","往外",22,sb.toString());
Preson preson3 = new Preson("zhansan3","往外",22,sb.toString());
ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
ObjectOutputStream os2 = new ObjectOutputStream(baos2);
os2.writeObject(preson1);
os2.writeObject(preson1);
os2.writeObject(preson1);
os2.flush();
os2.close();
os2.close();
//String str = new String(baos.toByteArray(),"UTF-8");
    //打印压缩前对象的大小 为byte.length长度
System.out.println("压缩前数据大小"+baos2.size()); byte[] by = new byte[1024];
ByteArrayOutputStream baos = new ByteArrayOutputStream(); GZIPOutputStream gon = new GZIPOutputStream(baos);
ObjectOutputStream oos = new ObjectOutputStream(gon);
oos.writeObject(preson1);
oos.writeObject(preson1);
oos.writeObject(preson1);
oos.flush();
oos.close();
gon.close();
//String str = new String(baos.toByteArray(),"UTF-8");
System.out.println("压缩后数据大小"+baos.size()); byte[] buf =baos.toByteArray();
System.out.println("压缩后字节长度"+buf.length);
ByteArrayInputStream bis = new ByteArrayInputStream(buf);
GZIPInputStream gin = new GZIPInputStream(bis);
ObjectInputStream ois = new ObjectInputStream(gin);
Preson sarah = (Preson) ois.readObject();
Preson sam = (Preson) ois.readObject();
Preson pr3 = (Preson)ois.readObject();
//print the records after reconstruction of state
sarah.print();
sam.print();
pr3.print();
ois.close();
gin.close(); ByteArrayOutputStream baos3 = new ByteArrayOutputStream();
ObjectOutputStream os3 = new ObjectOutputStream(baos3);
os3.writeObject(sarah);
os3.writeObject(sam);
os3.writeObject(pr3);
os3.flush();
os3.close();
os3.close();
//String str = new String(baos.toByteArray(),"UTF-8");
System.out.println("解压后数据大小"+baos3.size()); }

JAVA数据压缩简单测试的更多相关文章

  1. Java中简单测试FastDFS的文件上传

    pom.xml文件内容如下: <dependencies> <!-- fastdfs --> <dependency> <groupId>org.cso ...

  2. java代理课程测试 spring AOP代理简单测试

    jjava加强课程测试代码 反射. 代理 .泛型.beanUtils等 项目源码下载:http://download.csdn.net/detail/liangrui1988/6568169 热身运动 ...

  3. java实现简单的单点登录

    java实现简单的单点登录 摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了单点登录的需求和应用领域:从技术本身的角度分析了单点登录技术的内部机制和实现 ...

  4. 主题:Java WebService 简单实例

    链接地址:主题:Java WebService 简单实例    http://www.iteye.com/topic/1135747 前言:朋友们开始以下教程前,请先看第五大点的注意事项,以避免不必要 ...

  5. struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)

    为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...

  6. struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)

    为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...

  7. JAVA实现简单的四则运算

    GitHub 项目地址 https://github.com/745421831/-/tree/master PSP PSP2.1 Personal Software Process Stages 预 ...

  8. Java实现简单的RPC框架(美团面试)

    一.RPC简介 RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议.它允许像调用本地服务一样调用远程服务.它可以有不同的实现方式.如RMI(远程方法调用) ...

  9. MongoDB 副本集和C#交互,简单测试

    MongoDB 副本集和C#交互,简单测试 primary节点宕机: 模拟primary节点宕机的情况,这时查看监控: 可以看到37018已经成了primary节点.主界面宕机导致了整个集群发生一次e ...

随机推荐

  1. LeetCode() Super Ugly Number

    用了优先队列,还是超时 class Solution { public: int nthSuperUglyNumber(int n, vector<int>& primes) { ...

  2. id生成策略 id工具类

    import java.util.Random; /** * 各种id生成策略 * <p>Title: IDUtils</p> * <p>Description: ...

  3. JS 控制CSS样式表

    JS控制CSS所使用的方法: <style> .rule{ display: none; } </style> 你想要改变把他的display属性由none改为inline.  ...

  4. 让CPU的占有率曲线听我指挥

    最近我要在公司的一个study group负责AWS的AutoScaling功能的介绍.AWS可以根据instance(虚拟机)的CPU使用量进行scaling. 为了做demo,于是就有这样一个需求 ...

  5. #uwp# XMAL

    类型转换 在xaml中对属性赋值时,会将填入的字符串转换成对应的属性类型.比如: <Button Visibility="Visible" /> 会将Visible这个 ...

  6. python之元编程(元类实例)

    本实例是元类实例,功能是记录该的子类的类名,并以树状结构展示子类的类名. RegisterClasses继承自type,提供的功能是在__init__接口,为类创建了childrens的集合,并类名保 ...

  7. python print 进度条的例子

    def progress(width, percent): print "%s %d%%\r" % (('%%-%ds' % width) % (width * percent / ...

  8. Rails 4.0 移除了 XML 参数解析器。若要使用请加入 actionpack-xml_parser

    拜读了用 Rails 搭建微信公众平台 API之后发现, params[:xml]这个办法在Rails 4里面已经被办掉了,于是就看了一下Rails 4的新特性发现XML Parameter pars ...

  9. user.sh

    #!/bin/bash n=1 while [ $n -le 5 ] do n=$(( $n + 1 )) user=user$n userdel -r $user echo "$user ...

  10. Troubleshooting a node by using the netapp SP

    Troubleshooting a node by using the SP When you encounter a problem with a node, you can use the SP ...