public static Stream CompressStream(Stream stream)
{
if (stream == null)
{
throw new ArgumentNullException("stream");
}
//压缩流
GZipStream gzipStream = new GZipStream(stream, CompressionMode.Compress,true);
//将缓冲区中的数据刷新到基础流
gzipStream.Flush();
//返回压缩流对象
return gzipStream;
} /// <summary>
/// 解压流操作
/// </summary>
/// <param name="stream">需要解压的流对象</param>
/// <returns>返回解压GZipStream流对象</returns>
public static Stream DecompressStream(Stream stream)
{
if (stream == null)
{
throw new ArgumentNullException("stream");
} GZipStream gzipStream = new GZipStream(stream, CompressionMode.Decompress);
gzipStream.Flush();
return gzipStream;
}
//创建一个编码对象
UTF8Encoding uniEncoding = new UTF8Encoding();
//将字符串编码成字节序列
byte[] firstString = uniEncoding.GetBytes("Invalid file path characters are: ");
MemoryStream memoryStream = new MemoryStream();
// 将字节数组写入到当前流中.
memoryStream.Write(firstString, 0, firstString.Length);用上面生成一个流 对其加密 加密后解密 就报 GZip 头中的幻数不正确。请确保正在传入 GZip 流
错误
解决方案 »
- 关于数据库操作的模板设置,以及需要该模板时如何使用?
- c# 怎样编写一个控制台的程序来检测程序运行时间?
- C#中 类型强制转换的问题
- 一个简单的问题,我来菜鸟,请多帮助,顺便散点分
- 超级郁闷的问题:错误应用程序 w3wp.exe,版本 6.0.3790.1830,错误模块 kernel32.dll,版本 5.2.3790.2756,错误地址 0x00015e02。
- 在C#中整型应该不应该算是对象类型?
- MySql里请问插入一条记录后,如何返回他它自增ID?
- 这段代码"Subject: =?gb2312?Q?=BB=B6=D3=AD=BC=D3=C8=EB?="是什么编码方式?
- Asp.Net之DataList控件问题(急救!!!!!!!!!!!!!)
- 急求 内有详细说明 在线等候
- DES加密与解密。C#与java得出的密文不一样
- C#.net 开发游戏问题 传奇3
#region 压缩解压object
public static byte[] CompressionObject(object DataOriginal)
{
if (DataOriginal == null) return null;
BinaryFormatter bFormatter = new BinaryFormatter();
MemoryStream mStream = new MemoryStream();
bFormatter.Serialize(mStream, DataOriginal);
byte[] bytes = mStream.ToArray();
MemoryStream oStream = new MemoryStream();
DeflateStream zipStream = new DeflateStream(oStream, CompressionMode.Compress);
zipStream.Write(bytes, 0, bytes.Length);
zipStream.Flush();
zipStream.Close();
return oStream.ToArray();
} public static object DecompressionObject(byte[] bytes)
{
if (bytes == null) return null;
MemoryStream mStream = new MemoryStream(bytes);
mStream.Seek(0, SeekOrigin.Begin);
DeflateStream unZipStream = new DeflateStream(mStream, CompressionMode.Decompress, true);
object dsResult = null;
BinaryFormatter bFormatter = new BinaryFormatter();
dsResult = (object)bFormatter.Deserialize(unZipStream);
return dsResult;
}
#endregion