我对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) 当.NET BinaryFormatter用于序列化对象图时,是否应用了任何类型的压缩?
我在上下文中询问是否应该担心具有许多重复字符串和整数的对象图.
编辑 - 保持,如果在.NET中实例化字符串,则无需担心重复的字符串,对吧?