笔记如下
//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);//数组的长度
演示:

网友评论