InflaterInputStream.Read导致错误

时间:2012-07-09 19:56:22

标签: c# inputstream sharpziplib

这就是我所拥有的:

        byte[] buff = new byte[1];
        byte[] buffer = { 10, 20, 30, 40 };
        Stream data = new MemoryStream();            
        data.Write(buffer, 2, 2);
        data.Position = 0;
        InflaterInputStream _inflater;            
        _inflater = new InflaterInputStream(data);
        int count = _inflater.Read(buff, 0, 1);

抛出SharpZipBaseException:Header校验和非法和意外的EOF异常,而data.Position最后为2。

谁能告诉我可能是什么问题以及如何解决?提前谢谢。

1 个答案:

答案 0 :(得分:4)

InflaterInputStream期望数据采用“deflate”格式。你只写了两个字节的数据,这不是一个有效的“deflate”文件。

这样说 - 如果你给WinZip一些两个字节的随机blob并要求它解压缩,那你期望它做什么?

此处的错误消息非常清楚:您的文件不够长(意外的EOF异常)并以错误的方式启动文件格式(Header校验和非法)。如有疑问,请始终查看错误消息并考虑为什么您将收到该错误。