[英]Xamarin C# for Android : Zlib alternative
我目前正在从sqlite数据库中读取内容。 我在专栏里遇到麻烦了..
该列中的数据已压缩。 在Java中,我们可以使用Zlib,并且可以轻松读取该数据。
data = zlib.decompress(row[3])
我看到Xamarin不会在其IDE中转换zlib,也没有内置标准。.我已经看到了一些可用的Zip组件,但都集中在文件上,而不是直接馈送数据。
您将如何在Xamarin C#中做到这一点?
编辑:到目前为止的代码
var myCompressedData = cursor.GetBlob (cursor.GetColumnIndexOrThrow("TextCompressed"));
byte[] myCompressedByte = myCompressedData ;
MemoryStream stream = new MemoryStream(myCompressedByte );
using (DeflateStream decompressionStream = new DeflateStream(stream , CompressionMode.Decompress))
{
decompressionStream.Read(myCompressedByte , 0,myCompressedByte.Length );
}
string UnCompressedString = System.Text.Encoding.UTF8.GetString(myCompressedByte );
我不知何故得到了“ {System.IO.IOException:System.IO.Compression.DeflateStreamNative.Ch…} System.IO.IOException损坏的数据ReadInternal”
此异常击中
decompressionStream.Read(myCompressedByte , 0,myCompressedByte.Length );
您可以通过使用DeflateStream类来实现。
它包装了zlib,或者在较旧的版本中提供了标准的内置替代方案。
此类表示Deflate算法,它是用于无损文件压缩和解压缩的行业标准算法。 从net_v45开始,DeflateStream类使用zlib库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.