美文网首页
2018-03-04 Filter类(六):实现数据压缩

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

作者: 紫杉叶子 | 来源:发表于2018-09-19 13:46 被阅读0次
笔记如下
//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

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/hunffftx.html