c# - InflaterInputStream.Read 导致错误

标签 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 checksum illegal and unexpected EOF异常,最后data.Position为2

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

最佳答案

InflaterInputStream 期望数据为“deflate”格式。您只写入了两个字节的数据,这不是有效的“压缩”文件。

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

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

关于c# - InflaterInputStream.Read 导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11402163/

相关文章:

c# - 通过环回在 C# 中发送 UDP 数据包。为什么我无法追踪他们?

java - 使用 BufferedInputStream 从服务器读取音频

c# - 使用 SharpZipLib 压缩文件时出现 "Invalid folder"错误

java - 我需要在每个新输入流上调用 close() 吗?

java - Android将大输入流复制到文件非常慢

c# - 如何使用 C# 正确准备 'HTTP Redirect Binding' SAML 请求

java - 来自 .Net 的压缩流并从 Java 读取它们的问题

c# - 这是好的 C# 风格吗?

c# - 当指针指向项目时如何在gridview中指定项目的样式

c# - Winforms WPF Interop - WPF 内容无法绘制