`
atell
  • 浏览: 158034 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

[Java基础]Java使用GZIP进行文本压缩

阅读更多
import java.io.IOException;
import java.util.zip.GZIPOutputStream;

import org.apache.commons.io.output.ByteArrayOutputStream;
//该ByteArrayOutputStream类比jdk的同类好!细看其javadoc:In contrast to the original it doesn't reallocate the whole memory block but allocates additional buffers. 

//(压缩都是基于字节码而非字符)
public class TextZip {

    public static void main(String[] args) throws IOException {

        byte[] bytes = "中文撒大撒大发送大大三大四大赛的温热她跟他中文撒大撒大发送大大大三送大大三大四大赛的温热她跟他中文撒大撒大发送大大大三大四大赛的温热她跟他中文撒大撒大发送大大三大四大赛的温热她跟他"
                .getBytes();
        //对bytes压缩
        ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(1024);
        GZIPOutputStream gzipOutput = new GZIPOutputStream(byteOutput, 1024);
        gzipOutput.write(bytes);
        gzipOutput.close();

        //验证一下压缩后的效果对比
        System.out.println(bytes.length);
        for (byte b : bytes) {
            System.out.print(b + " ");
        }
        System.out.println();

        byte[] bytes2 = byteOutput.toByteArray();
        System.out.println(bytes2.length);
        for (byte b : bytes2) {
            System.out.print(b + " ");
        }
    }

}

 

效果:

 

270


-28 -72 -83 -26 -106 -121 -26 -110 -110 -27 -92 -89 -26 -110 -110 -27 -92 -89 -27 -113 -111 -23 -128 -127 -27 -92 -89 -27 -92 -89 -28 -72 -119 -27 -92 -89 -27 -101 -101 -27 -92 -89 -24 -75 -101 -25 -102 -124 -26 -72 -87 -25 -125 -83 -27 -91 -71 -24 -73 -97 -28 -69 -106 -28 -72 -83 -26 -106 -121 -26 -110 -110 -27 -92 -89 -26 -110 -110 -27 -92 -89 -27 -113 -111 -23 -128 -127 -27 -92 -89 -27 -92 -89 -27 -92 -89 -28 -72 -119 -23 -128 -127 -27 -92 -89 -27 -92 -89 -28 -72 -119 -27 -92 -89 -27 -101 -101 -27 -92 -89 -24 -75 -101 -25 -102 -124 -26 -72 -87 -25 -125 -83 -27 -91 -71 -24 -73 -97 -28 -69 -106 -28 -72 -83 -26 -106 -121 -26 -110 -110 -27 -92 -89 -26 -110 -110 -27 -92 -89 -27 -113 -111 -23 -128 -127 -27 -92 -89 -27 -92 -89 -27 -92 -89 -28 -72 -119 -27 -92 -89 -27 -101 -101 -27 -92 -89 -24 -75 -101 -25 -102 -124 -26 -72 -87 -25 -125 -83 -27 -91 -71 -24 -73 -97 -28 -69 -106 -28 -72 -83 -26 -106 -121 -26 -110 -110 -27 -92 -89 -26 -110 -110 -27 -92 -89 -27 -113 -111 -23 -128 -127 -27 -92 -89 -27 -92 -89 -28 -72 -119 -27 -92 -89 -27 -101 -101 -27 -92 -89 -24 -75 -101 -25 -102 -124 -26 -72 -87 -25 -125 -83 -27 -91 -71 -24 -73 -97 -28 -69 -106


90


31 -117 8 0 0 0 0 0 0 0 123 -78 99 -19 -77 105 -19 -49 38 77 122 -70 100 57 -124 124 -38 63 -15 101 67 35 -120 -79 100 -7 -109 29 -99 32 -58 -20 -39 64 -14 -59 -42 -39 -49 103 -75 60 -37 -79 -14 121 -13 -38 -89 75 119 -66 -40 62 -1 -55 -18 105 79 -16 106 -121 -104 64 93 -45 40 49 -127 -96 118 0 -76 10 12 52 14 1 0 0

分享到:
评论

相关推荐

    GZip流压缩&Web流压缩组件

     第一个软件,传输流/文件的压缩,利用Internet中惯常使用的gzip, deflate算法,可以和sun java的GZipInputStream和GZipOutputStream互操作  第二个软件,基于HTTP的压缩传输软件,可完全和IE的VBScript和...

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java源码包4

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    java源码包3

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    java源码包2

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。...

    java 编程入门思考

    10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 ...

    Java初学者入门教学

    10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 ...

    java联想(中文)

    10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 ...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。...

    JAVA_Thinking in Java

    10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 ...

    Thinking in Java 中文第四版+习题答案

    10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 ...

    Thinking in Java简体中文(全)

    10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 ...

    邮件发送 poi 二维码 条形码等java常用的工具类

    包括条形码操作工具、二维码操作、图片验证码工具、动态密码工具、雪花算法id工具、签名工具、poi导出、json转换、文件操作、分页、日期处理、jdbc、大数运算及格式化、gzip压缩、http 结构说明如下: ...

    java编程100例

    实例53 用GZIP压缩解压文件 实例54 用Zip压缩多个文件 实例55 从压缩包中提取文件 实例56 zip压缩包查看程序 实例57 压缩中文文件名的文件 实例58 存储与读取对象 实例59 Java画图程序 实例60 从网络取得图像 实例61...

    java8源码-Java-Resources:Java基础及JavaWeb相关资料

    基础及Java Web 相关资料 Http1与Http2的区别? 1、HTTP2使用的是二进制传送,HTTP1.X是文本(字符串)传送。 大家都知道HTTP1.X使用的是明文的文本传送,而HTTP2使用的是二进制传送,二进制传送的单位是帧和 流。帧...

    文本压缩实验(附实验文档)

    自己做的文本压缩实验,含有huffman、lzw、gzip等算法,通过实验数据详细比较了各种算法的优缺点。并且将压缩、解压缩的方法已经封装好,直接调用即可。压缩包内附文档,有实验数据和调用方法。

Global site tag (gtag.js) - Google Analytics