2012-07-09 107 views
1

这是我有:InflaterInputStream.Read导致错误

 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:报头校验违法意外EOF例外,data.Position是由2月底。

任何人都可以告诉我可能是什么问题,以及如何解决它?提前致谢。

回答

4

InflaterInputStream预计数据处于“放气”格式。你只写了两个字节的数据,这不是一个有效的“deflate”文件。

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

错误信息在这里非常明显:您的文件不够长(意外的EOF异常)并且以错误的方式启动文件格式(Header checksum非法)。如有疑问,请始终查看错误消息并考虑为什么您会得到该错误。

+0

明白了,谢谢。 – user1486691 2012-07-09 20:06:11