c#压缩实现

部署运行你感兴趣的模型镜像

代码
/// <summary>
/// table XML序列化并压缩
/// </summary>
/// <param name="table"></param>
/// <param name="encryptor"></param>
/// <returns></returns>
public static byte[] Compress(DataTable table, ICryptoTransform encryptor)
{
byte[][] zipData = new byte[2][];
using (MemoryStream ms = new MemoryStream())
{
//对字节流进行加密
using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
{
using (GZipStream zs = new GZipStream(cs, CompressionMode.Compress, true))
{
using (BufferedStream bs = new BufferedStream(zs))
{
table.WriteXmlSchema(bs);
bs.Close();
}
zs.Close();
}
cs.FlushFinalBlock();
cs.Close();
}
zipData[0] = ms.ToArray();
ms.Close();
}
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
{
using (GZipStream zs = new GZipStream(cs, CompressionMode.Compress, true))
{
using (BufferedStream bs = new BufferedStream(zs))
{
table.WriteXml(bs);
bs.Close();
}
zs.Close();
}
cs.FlushFinalBlock();
cs.Close();
}
zipData[1] = ms.ToArray();
ms.Close();
}
//释放table的资源
table.Clear();
table.Dispose();

byte[] outData;
using (MemoryStream ms2 = new MemoryStream())
{
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(ms2, zipData);
outData = ms2.ToArray();
ms2.Close();
ms2.Position = 0;
}
//释放zipData的资源
GC.SuppressFinalize(zipData);
return outData;
}

/// <summary>
/// table XML序列化并压缩 不加密
/// </summary>
/// <param name="table"></param>
/// <returns></returns>
public static byte[] Compress(DataTable table)
{
byte[][] zipData = new byte[2][];
using (MemoryStream ms = new MemoryStream())
{
using (GZipStream zs = new GZipStream(ms, CompressionMode.Compress, true))
{
using (BufferedStream bs = new BufferedStream(zs))
{
table.WriteXmlSchema(bs);
bs.Close();
}
zs.Close();
}
zipData[0] = ms.ToArray();
ms.Close();
}
using (MemoryStream ms = new MemoryStream())
{
using (GZipStream zs = new GZipStream(ms, CompressionMode.Compress, true))
{
using (BufferedStream bs = new BufferedStream(zs))
{
table.WriteXml(bs);
bs.Close();
}
zs.Close();
}
zipData[1] = ms.ToArray();
ms.Close();
}
//释放table的资源
table.Clear();
table.Dispose();

byte[] resutData;
using (MemoryStream ms = new MemoryStream())
{
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(ms, zipData);
resutData = ms.ToArray();
ms.Close();
ms.Position = 0;
}
//释放zipData的资源
GC.SuppressFinalize(zipData);
return resutData;
}

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值