Unity3D使用压缩和解压算法的代码



using UnityEngine;using System.Collections;using ICSharpCode.SharpZipLib;
using ICSharpCode.SharpZipLib.GZip;using System.IO;
using System.Text;
using System;
 
public class RecodeAndSave:MonoBehaviour {
 
    void Start() {
 
        byte[] binary = Encoding.UTF8.GetBytes("你好,我是小小酥.很高兴为您服务");
        Debug.Log("原始数据是"+Encoding.UTF8.GetString(binary));
 
        byte[] press = Compress(binary);
        Debug.Log("压缩后的数据是"+Convert.ToBase64String(press)+"长度是"+press.Length);
 
        byte[] depress = DeCompress(press);
        Debug.Log("解压后的数据是"+Encoding.UTF8.GetString(depress));
    }    

byte[] Compress(byte[] binary) {
        MemoryStream ms = new MemoryStream();
        GZipOutputStream gzip = new GZipOutputStream(ms);
        gzip.Write(binary,0,binary.Length);
        gzip.Close();
        byte[] press = ms.ToArray();
        return press; 
    }
 
    byte[] DeCompress(byte[] press) {
        GZipInputStream gzi = new GZipInputStream(new MemoryStream(press));
        MemoryStream re = new MemoryStream();
        int count = 0;
        byte[] data = new byte[4096];
        while((count=gzi.Read(data,0,data.Length))!=0) {
            re.Write(data,0,count);
        }
        byte[] depress = re.ToArray();
        return depress;
    }}

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

推荐阅读更多精彩内容

  • zlib介绍 zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初...
    JasonDing阅读 18,965评论 0 3
  • 项目中有时候需要文件下载解压,项目中选择了ZipArchive,实际使用也比较简单,直接调用解压和压缩方法即可. ...
    FlyElephant阅读 4,808评论 0 2
  • 孟底枚丢斯城的夜空被战火点亮。 激烈的厮杀从星系边缘一直延伸到了星盘,甚至连星盘的保护罩也被攻破——地面上已经可以...
    上铉月阅读 267评论 1 1
  • 最近读到肖复兴的一篇散文,写他对马勒的热爱及对一位萍水相逢的老人的感念。在《马勒向我走来》一文中,有一个小细节,他...
    格尔黑阅读 794评论 45 44
  • 说好的早上5点起床的,说到做到。 闹钟响的时候,知道自己一定要起来,但是身体却不听脑子的话。犹豫了一会,才挣扎着起...
    陈清伟阅读 232评论 0 0