Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Using compression in .Net
using System.IO;
using System.IO.Compression;
//---------------
string stringNormal = "seutexto";
byte[] byteArr = Encoding.Unicode.GetBytes(stringNormal);
// Você pode trocar o MemoryStream pelo FileStream para salvar em arquivo.
MemoryStream memStream = new MemoryStream();
GZipStream gzStream = new GZipStream(memStream, CompressionMode.Compress, true);
gzStream.Write(byteArr, 0, byteArr.Length);
gzStream.Close();
// Caso utilize o FileStream, troque o código a seguir pelo Save.
memStream.Position = 0;
byteArr = new byte[memStream.Length];
memStream.Read(byteArr, 0, byteArr.Length);
memStream.Close();
// Aqui o byteArr contém o conteúdo compactado que pode ser trafegado
//---------------
string stringNormal;
// Você pode trocar o MemoryStream 1 pelo FileStream para salvar em arquivo.
MemoryStream memStream1 = new MemoryStream();
// Carregar o byteArr com o conteúdo compactado, ou trocar o MemoryStream 2 para FileStream.
MemoryStream memStream2 = new MemoryStream(byteArr);
GZipStream gzStream = new GZipStream(memStream2, CompressionMode.Decompress, true);
int readBytes;
byte[] buffer = new byte[1024];
while ((readBytes = gzStream.Read(buffer, 0, buffer.Length)) != 0)
memStream1.Write(buffer, 0, readBytes);
memStream2.Close();
gzStream.Close();
// Caso utilize o FileStream, troque o código a seguir pelo Save.
memStream1.Position = 0;
byteArr = new byte[memStream1.Length];
memStream1.Read(byteArr, 0, byteArr.Length);
memStream1.Close();
stringNormal = Encoding.Unicode.GetString(byteArr);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment