Вы можете использовать GzipStream.
Вот пример:
//Compress
Dim mem As New IO.MemoryStream
Dim gz As New System.IO.Compression.GZipStream(mem, IO.Compression.CompressionMode.Compress)
Dim sw As New IO.StreamWriter(gz)
sw.WriteLine("hello compression")
sw.Close()
//Decompress
Dim mem2 As New IO.MemoryStream(mem.ToArray)
gz = New System.IO.Compression.GZipStream(mem2, IO.Compression.CompressionMode.Decompress)
Dim sr As New IO.StreamReader(gz)
MsgBox(sr.ReadLine)
sr.Close()
редактировать 2 года спустя ...
Это не совсем сработало, возможно, потому что мне нужно было хранить данные в байтовом массиве . Это сработало для Compress:
'Compress
Dim mem As New IO.MemoryStream
Dim gz As New System.IO.Compression.GZipStream(mem, IO.Compression.CompressionMode.Compress)
Dim sw As New IO.StreamWriter(gz)
sw.Write(value)
mem.Seek(0, IO.SeekOrigin.Begin)
Dim sr As New IO.BinaryReader(mem)
_zippedXML = sr.ReadBytes(CInt(mem.Length))
sw.Close()
Затем для распаковки я просто передал байтовый массив в конструктор mem2 вместо mem.ToArray.