VB.NET压缩解压缩字符串

时间:2010-05-23 12:53:37

标签: .net vb.net compression

如何在VB.NET中压缩/解压缩字符串? 我正在尝试通过网络发送长字符串,并且在发送之前需要它们尽可能小。

由于

3 个答案:

答案 0 :(得分:3)

你可以使用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()

然后对于Decompress我只是将字节数组传递给mem2的构造函数而不是mem.ToArray。

答案 1 :(得分:1)

可以通过GZipStream通过MemoryStream传递它,然后检索压缩流以通过网络发送它。压缩效果不是很好,但编码速度快,容易。

答案 2 :(得分:0)

您还可以查看Xceed库。它的速度更快,而且压缩效果也比GZipstream好得多。