zoukankan      html  css  js  c++  java
  • JAVA数据压缩简单测试

    本段代码只是做了简单的测试,看是否可行,此处仅作笔记。适应用场合,比如数据库,数据缓存。压缩解压肯定是有资源消耗的! 当数据小于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()); }
  • 相关阅读:
    SCCM 补丁更新 失误排错一例
    Oracle 远程连接 DB配置 连接命令
    反向代理服务器
    用JMF播放音频 例子
    HTML css兼容
    Java国际化
    JBPM 之介绍,使用
    Nginx内核优化引用
    Nginx 学习
    局域网访问VMware虚拟机中的Ubuntu
  • 原文地址:https://www.cnblogs.com/b422/p/5455229.html
Copyright © 2011-2022 走看看