我对GZip Serializer有一些奇怪的问题.
尝试使用数据序列化对象.
以下代码给出结果(在调试中的POINT1):ms.Length = 100028和uncompressedStream.Length = 100027
在POINT1之后,存在异常"解析完成之前遇到的流结束.",我认为这是丢失字节的结果.
我正在使用.net 4.0.
//generating data
int length = 100000;
byte[] data = new byte[length];
for (int i = 0; i < length; i++)
{
data[i] = System.Convert.ToByte(i % 100 + i % 50);
}
//serialization into memory stream
IFormatter formatter = new BinaryFormatter();
var ms = new MemoryStream();
formatter.Serialize(ms, data);
ms.Seek(0, SeekOrigin.Begin);
//GZip zip
MemoryStream compressedStream = new MemoryStream();
var Compress = new GZipStream(compressedStream, CompressionMode.Compress);
ms.CopyTo(Compress);
compressedStream.Seek(0, SeekOrigin.Begin);
//GZip Unzip …Run Code Online (Sandbox Code Playgroud)