当前位置: 首页 > 编程语言 > C#

zlib.Net的压缩和解压问题Share

时间:2023-04-10 22:26:31 C#

zlib.Net的压缩和解压问题但是一个MemoryStream。通过这样做:byte[]buffer=ASCIIEncoding.ASCII.GetBytes("HelloWorld");MemoryStreamoutStream=newMemoryStream();zlib.ZOutputStreamoutZStream=newzlib.ZOutputStream(outStream,zlib.zlibConst.Z_BEST_COMPRESSION);outZStream.Write(buffer,0,buffer.Length);outZStream.finish();缓冲区=outStream.GetBuffer();Debug.WriteLine(DateTime.Now.ToString()+":"+buffer.Length);MemoryStreaminStream=newMemoryStream(buffer);MemoryStreammo=newMemoryStream();zlib.ZInputStreaminZStream=newzlib.ZInputStream(inStream,zlib.zlibConst.Z_BEST_COMPRESSION);诠释n=0;while((n=inZStream.Read(buffer,0,buffer.Length))>0){mo.Write(buffer,0,n);}stringSTR=ASCIIEncoding.ASCII.GetString(mo.GetBuffer());我无法获取字符串“HelloWorld”。longbkit,感谢您的参考。那里有代码:publicstaticvoidCompressData(byte[]inData,outbyte[]outData){using(MemoryStreamoutMemoryStream=newMemoryStream())=newMemoryStream(inData)){CopyStream(inMemoryStream,outZStream);outZStream.finish();outData=outMemoryStream.ToArray();}}publicstaticvoidDecompressData(byte[]inData,outbyte[]outData){使用(MemoryStreamoutMemoryStream=newMemoryStream())){CopyStream(inMemoryStream,outZStream);outZStream.finish();outData=outMemoryStream.ToArray();}}publicstaticvoidCopyStream(System.IO.Streaminput,System.IO.Streamoutput){byte[]buffer=newbyte[2000];国际长度;while((len=input.Read(buffer,0,2000))>0){output.Write(buffer,0,len);}output.Flush();有效,但我所看到的是压缩和解压缩之间的唯一区别是ZOutput构造函数中的压缩类型......太神奇了。如果压缩在解压缩输入时调用输出,我会更清楚。或者类似这样的东西......实际上它只是输出。?用户“JohnSmith”破坏了原始代码,因为CopyTo不起作用,并在他编辑的文本中抛出异常(并被其他人批准了两次......)。恢复为OP的原始代码示例。请在下次编辑前测试编辑后的代码,谢谢。以上就是《zlib.Net压缩解压问题分享》C#学习教程的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: