小编Yfe*_*fer的帖子

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
查看次数

标签 统计

.net ×1

c# ×1

gzip ×1

gzipstream ×1

stream ×1