相关疑难解决方法(0)

GZipStream压缩问题(丢失字节)

我对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 c# gzip stream gzipstream

9
推荐指数
1
解决办法
3698
查看次数

BinaryFormatter是否应用任何压缩?

当.NET BinaryFormatter用于序列化对象图时,是否应用了任何类型的压缩?

我在上下文中询问是否应该担心具有许多重复字符串和整数的对象图.

编辑 - 保持,如果在.NET中实例化字符串,则无需担心重复的字符串,对吧?

.net c# compression serialization binaryformatter

7
推荐指数
2
解决办法
4245
查看次数