Xamarin C#for Android:Zlib替代品

时间:2016-02-01 10:32:25

标签: c# android xamarin zlib

我目前正在阅读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中损坏的数据ReadInternal ...} System.IO.IOException”

此例外点击

decompressionStream.Read(myCompressedByte  , 0,myCompressedByte.Length  );

1 个答案:

答案 0 :(得分:0)

您可以使用DeflateStream类来实现此目的。

它包装了zlib,或者在旧版本中提供了标准的内置替代方案。

  

此类表示Deflate算法,该算法是无损文件压缩和解压缩的行业标准算法。从net_v45开始,DeflateStream类使用zlib库。