繁体   English   中英

适用于Android的Xamarin C#:Zlib替代

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM