System.IO.InvalidDataException压缩文件错误!? c#gzip 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //如果输入流有Length 长度为Length * 30 因为压缩率为3% try { length = (int)input.Length * 20; } catch { length = 65536; }你这代码和注释,看的我也是醉了明明写的是乘以20吗而且一个int型的计算赋值,加什么try,catch,这东西有可能会出错?? length = (int)input.Length * 20;这句代码是先将input.Length转int型,再乘以20,而不是结果转int型而即便是写成 (int)(input.Length * 20);它也永远不会出错即便结果已经大于int型的取值范围了,也能成功转int型,只不过是会丢失精度罢了而且int型是32位的,65536又是闹哪样,16位??16位也最多到65535,而不会到65536啊,这65536看的我十分费解 MemoryStream ms = new MemoryStream(length); ms.Write(block, 0, byteRead);这代码更让人费解压缩完的文件流,没有写会文件,这是写哪里去了? 怎样关闭和释放System.Timers.Timer? vs2010 C# 50分再追加50分【 updatePanel 实现局部不刷新效果的 实例~~~】 尝试重定向的次数太多 怎么写P2P应用?可有封装了P2P的dll? 难道就没人知道这个问题吗? winForm 局域网上读写文件问题 怎么解决??? 哪一位大侠知道就说一句谢谢呀? 关于在xml中特殊字符的转义 WinForm程序的自动更新· 新手提问,委托的invoke()是啥意思? VS2010连接sqlserver2008 R2的问题
try { length = (int)input.Length * 20; }
catch { length = 65536; }你这代码和注释,看的我也是醉了
明明写的是乘以20吗
而且一个int型的计算赋值,加什么try,catch,这东西有可能会出错??
这句代码是先将input.Length转int型,再乘以20,而不是结果转int型而即便是写成 (int)(input.Length * 20);
它也永远不会出错
即便结果已经大于int型的取值范围了,也能成功转int型,只不过是会丢失精度罢了
而且int型是32位的,65536又是闹哪样,16位??16位也最多到65535,而不会到65536啊,这65536看的我十分费解
ms.Write(block, 0, byteRead);这代码更让人费解
压缩完的文件流,没有写会文件,这是写哪里去了?