C# GZIP 압축
압축
public static byte[] Compression(string str)
{
var rowData = Encoding.UTF8.GetBytes(str);
byte[] compressed = null;
using (var outStream = new MemoryStream())
{
using (var hgs = new GZipStream(outStream, CompressionMode.Compress))
{
hgs.Write(rowData, 0, rowData.Length);
}
compressed = outStream.ToArray();
}
return compressed;
}
해제
public static byte[] Decompress(byte[] gzip)
{
using (GZipStream stream = new GZipStream(new MemoryStream(gzip), CompressionMode.Decompress))
{
const int size = 4096;
byte[] buffer = new byte[size];
using (MemoryStream memory = new MemoryStream())
{
int count = 0;
do
{
count = stream.Read(buffer, 0, size);
if (count > 0)
{
memory.Write(buffer, 0, count);
}
}
while (count > 0);
return memory.ToArray();
}
}
}