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