2012-07-09 108 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