http通信,Android Gzip压缩解压
2016-03-03 11:59
477 查看
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
/**
*
*开发公司:sojson.com<br/>
*版权:sojson.com<br/>
*<p>
*
*字符串压缩
*
*<p>
*
*区分 责任人 日期 说明<br/>
*创建 周柏成 2015年12月19日 <br/>
*<p>
********
*<p>
*@author zhou-baicheng
*@email json@sojson.com
*@version 1.0,2015年12月19日 <br/>
*
*/
public class GZIP {
/**
*字符串的压缩
*
*@param str
* 待压缩的字符串
*@return 返回压缩后的字符串
*@throws IOException
*/
public static String compress(String str) throws IOException {
if (null == str || str.length() <= 0) {
return str;
}
// 创建一个新的 byte 数组输出流
ByteArrayOutputStream out = new ByteArrayOutputStream();
// 使用默认缓冲区大小创建新的输出流
GZIPOutputStream gzip = new GZIPOutputStream(out);
// 将 b.length 个字节写入此输出流
gzip.write(str.getBytes());
gzip.close();
// 使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串
return out.toString("UTF-8");
}
/**
*字符串的解压
*
*@param str
* 对字符串解压
*@return 返回解压缩后的字符串
*@throws IOException
*/
public static String unCompress(String str) throws IOException {
if (null == str || str.length() <= 0) {
return str;
}
// 创建一个新的 byte 数组输出流
ByteArrayOutputStream out = new ByteArrayOutputStream();
// 创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组
ByteArrayInputStream in = new ByteArrayInputStream(str
.getBytes("UTF-8"));
// 使用默认缓冲区大小创建新的输入流
GZIPInputStream gzip = new GZIPInputStream(in);
byte[] buffer = new byte[256];
int n = 0;
while ((n = gzip.read(buffer)) >= 0) {// 将未压缩数据读入字节数组
// 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此 byte数组输出流
out.write(buffer, 0, n);
}
// 使用指定的 charsetName,通过解码字节将缓冲区内容转换为字符串
return out.toString("UTF-8");
}
}
相关文章推荐
- 一步一步学网络爬虫(从python到scrapy)
- tomcat实现https登录
- selinux 导致无法启动httpd
- HTTP Basic Authentication
- Android网络 ——判断网络是否连接
- 超出TCP连接端口数限制(MaxUserPort)引起的服务器问题
- TCP/IP、Http、Socket的区别
- TCP/IP 路由 卷二 习题
- 网络编程socket之bind、Listen 及 accept
- [iOS]网络编程专题:Reachability的使用
- linux下网络文件系统NFS服务的搭建
- Web通信安全——Https实现原理
- python实现网络爬虫
- 有关HTTP请求的辅助类
- 找实习之计算机网络复习
- nginx -with-openssl 和 with-http-openssl区别
- Android网络通信库Volley简介
- 基于近邻用户协同过滤算法的音乐推荐系统
- bzoj3630 镜面通道 网络流
- IOS网络图片缓存详解