我的备忘录 » 日志 » byte数组的压缩和解压缩(C#)
byte数组的压缩和解压缩(C#)
fang 发表于 2009-08-26 14:51:54
涉及到的包:ICSharpCode.SharpZipLib
/// <summary>
/// 压缩byte数组
/// </summary>
/// <param name="inBytes">需要压缩的byte数组</param>
/// <returns>压缩好的byte数组</returns>
public byte[] CompressByte(byte[] inBytes)
{
MemoryStream outStream = new MemoryStream();
Stream zipStream = new GZipOutputStream(outStream);
zipStream.Write(inBytes, 0, inBytes.Length);
zipStream.Close();
byte[] outData = outStream .ToArray();
outStream.Close();
return outData;
}
/// <summary>
/// 解压缩byte数组
/// </summary>
/// <param name="inBytes">需要解压缩的byte数组</param>
/// <returns></returns>
public byte[] DecompressByte(byte[] inBytes)
{
byte[] writeData = new byte[2048];
MemoryStream inStream = new MemoryStream(inBytes);
Stream zipStream = new GZipInputStream(inStream) as Stream;
MemoryStream outStream = new MemoryStream();
while (true)
{
int size = zipStream.Read(writeData, 0, writeData.Length);
if (size > 0)
{
outStream.Write(writeData, 0, size);
}
else
{
break;
}
}
sm.Close();
byte[] outData = outStream.ToArray();
outStream.Close();
return outData;
}
/// <summary>
/// 压缩byte数组
/// </summary>
/// <param name="inBytes">需要压缩的byte数组</param>
/// <returns>压缩好的byte数组</returns>
public byte[] CompressByte(byte[] inBytes)
{
MemoryStream outStream = new MemoryStream();
Stream zipStream = new GZipOutputStream(outStream);
zipStream.Write(inBytes, 0, inBytes.Length);
zipStream.Close();
byte[] outData = outStream .ToArray();
outStream.Close();
return outData;
}
/// <summary>
/// 解压缩byte数组
/// </summary>
/// <param name="inBytes">需要解压缩的byte数组</param>
/// <returns></returns>
public byte[] DecompressByte(byte[] inBytes)
{
byte[] writeData = new byte[2048];
MemoryStream inStream = new MemoryStream(inBytes);
Stream zipStream = new GZipInputStream(inStream) as Stream;
MemoryStream outStream = new MemoryStream();
while (true)
{
int size = zipStream.Read(writeData, 0, writeData.Length);
if (size > 0)
{
outStream.Write(writeData, 0, size);
}
else
{
break;
}
}
sm.Close();
byte[] outData = outStream.ToArray();
outStream.Close();
return outData;
}
收藏:
QQ书签
del.icio.us
