2018-03-04 Filter类(六):实现数据压缩

笔记如下
//response.getOutputStream().print("hahaha");
        
        String data="alsjdalskjdlasjd123123123123123123123123dfgfvsdvdsgsdgsdgsgalsjdalskjdlasjd123"
                + "123123123123123123123dfgfvsdvdsgsdgsdgsgalsjdalskjdlasjd1231231231231adasdasdasd"
                + "23123123123dfgfvsdvdsgsdgsdgsg23123123123dfgfvsdvdsgsdgsdgsg23123123123dfgfvsdvg"
                + "sdgsg23123123123dfgfvsdvdsgsdgsdgsgsdgsg23123123123dfgfvsdvdsgsdgsdgsg";
        
        byte[] b = data.getBytes();
        System.out.println("压缩前" + b.length);
        
        //底层流
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        
        //采用gzip压缩
        //这里压缩的时候输出一个输出流,这里的输出流是一个底层流 
        GZIPOutputStream gout = new GZIPOutputStream(baos);
        gout.write(b);
        
        //由于数据是写到底层流baos中的,gout 默认有缓冲区的.
        
        gout.close();//close()确保可以写到boas中去
        
        
        b = baos.toByteArray();
        
        System.out.println("压缩后" + b.length);
        
        //告诉浏览器 需要 解压数据 --- 通过http响应头
        response.setHeader("content-encoding", "gzip");
        
        response.setContentLength(b.length);//数组的长度
        

演示:


4.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容