1. 程式人生 > >c#實現gzip壓縮解壓縮算法:byte[]字節數組,文件,字符串,數據流的壓縮解壓縮

c#實現gzip壓縮解壓縮算法:byte[]字節數組,文件,字符串,數據流的壓縮解壓縮

mono att frame res 算法 cal http pda tail

轉載:https://blog.csdn.net/luanpeng825485697/article/details/78165788

我測試了下壓縮byte[],是可以的

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using UnityEngine;

public class TestByteAttay : MonoBehaviour {

    // Use this for initialization
void Start () { //測試字符串 string inputStr = "[email protected],[email protected],[email protected]"; print("原文:\t" + inputStr); byte[] input = System.Text.Encoding.Default.GetBytes(inputStr); print("長度:\t" + input.Length); byte[] data = gzipCompress(input); print(
"壓縮後:\t"); print("長度:\t" + data.Length); } // Update is called once per frame void Update () { } void YaSuo() { } //gzip字節數組壓縮 public static byte[] gzipCompress(byte[] data) { try { MemoryStream ms
= new MemoryStream(); GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true); zip.Write(data, 0, data.Length); zip.Close(); byte[] buffer = new byte[ms.Length]; ms.Position = 0; ms.Read(buffer, 0, buffer.Length); ms.Close(); return buffer; } catch (Exception e) { throw new Exception(e.Message); } } //gzip字節數組解壓縮 public static byte[] gzipDecompress(byte[] data) { try { MemoryStream ms = new MemoryStream(data); GZipStream zip = new GZipStream(ms, CompressionMode.Decompress, true); MemoryStream msreader = new MemoryStream(); byte[] buffer = new byte[0x1000]; while (true) { int reader = zip.Read(buffer, 0, buffer.Length); if (reader <= 0) { break; } msreader.Write(buffer, 0, reader); } zip.Close(); ms.Close(); msreader.Position = 0; buffer = msreader.ToArray(); msreader.Close(); return buffer; } catch (Exception e) { throw new Exception(e.Message); } } }

c#實現gzip壓縮解壓縮算法:byte[]字節數組,文件,字符串,數據流的壓縮解壓縮