无线开发时,一方面出于给玩家节省流量的考虑,一方面为了加快网络传输速度,需要对过大的消息进行。消息字节大小小于256的压缩就没有太大意义,建议对大于1k的消息进行压缩处理,具体数据可以根据自己的业务进行设定。
参考java代码如下
/**
* 对消息进行压缩,并返回压缩后的字节数组
*
* @param bodyBuf
* @return
* @throws IOException
*/
private static byte[] compress(IoBuffer bodyBuf) throws IOException {
ByteArrayOutputStream fos = new ByteArrayOutputStream();
ZipOutputStream zops = new ZipOutputStream(fos);
try {
zops.putNextEntry(new ZipEntry("t"));
byte[] byteArr = new byte[bodyBuf.limit()];
bodyBuf.get(byteArr);
zops.write(byteArr);
} finally {
zops.flush();
zops.close();
fos.flush();
fos.close();
}
return fos.toByteArray();
}
//解压缩
private static void decompress(byte[] bytes) throws IOException {
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
ZipInputStream zis = new ZipInputStream(bais);
zis.getNextEntry();
int k = 0;
int ir = -1;
IoBuffer ioBuffer = IoBuffer.allocate(8192);
ioBuffer.setAutoExpand(true);
while ((ir = zis.read()) != -1) {
k++;
System.err.print(Integer.toHexString(ir) + " ");
ioBuffer.put((byte) ir);
}
System.err.println("\nByteLength:" + k);
ioBuffer.flip();
System.err.println("decompress:" + ioBuffer);
}
分享到:
相关推荐
Huffman编码对英文文本的压缩和解压缩
压缩和解压缩类,添加到项目就可以了。方法直接传参数就可以完成压缩和解压缩。 注意的是必须用ZIP压缩工具压缩的文档才能解压。改后缀是不行的。
java实现霍夫曼(huffman)树的压缩和解压缩,支持对文档的压缩和解压缩
本程序实现了利用 Huffman 编码对图像进行无损压缩和解压缩。Huffman 编码是一种基于字符出现频率构建相应前缀码的无损数据压缩算法。 使用方法: 1. 需要安装 OpenCV 和 Numpy 库: pip install opencv-python ...
Visual C++源代码 49 如何压缩和解压缩大尺寸文件Visual C++源代码 49 如何压缩和解压缩大尺寸文件Visual C++源代码 49 如何压缩和解压缩大尺寸文件Visual C++源代码 49 如何压缩和解压缩大尺寸文件Visual C++源代码...
基于pako的gzip 压缩和解压缩,解决中英文乱码问题。可运行demo
压缩和解压缩源码
java压缩和解压缩
使用java语言实现Huffman对任意文件做到压缩和解压缩,压缩后的文件只能通过解压缩来解压后才能读取
草稿版代码 内容超详细 可压缩任何文件类型 本人亲测 但代码有些部分时间复杂度待优化
java中如何实现压缩和解压缩,zip,unzip,java中如何实现压缩和解压缩,zip,unzip
信息论编码实验
用于压缩和解压缩用于压缩和解压缩用于压缩和解压缩用于压缩和解压缩用于压缩和解压缩
ICSharpCode.SharpZipLib压缩和解压缩示例
UPX压缩和解压缩器,不是源码,是工具,可以实现exe文件的压缩和解压缩
适合压缩和解压缩文件为rar文件格式。压缩比率很大
Linux和Unix系统下,常用的各种格式文件的压缩和解压缩命令总结
采用哈夫曼编码思想实现文件的压缩和解压缩功能,并提供压缩前后的占用空间之比。要求:(1)压缩原文件的规模应不小于5K。(2)提供解压缩后文件与原文件的相同性比较功能。
c语言实现哈夫曼图像压缩和解压缩课程设计
c# 压缩和解压缩自己写的一个例子,并非用到SharpZipLib来压缩和解压文件,而是自己引写老外的,然后改写了一个,也没用到.NET自带的压缩与解压缩。 比他们都好的压缩!!!!