我目前正在阅读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 );
答案 0 :(得分:0)
您可以使用DeflateStream类来实现此目的。
它包装了zlib,或者在旧版本中提供了标准的内置替代方案。
此类表示Deflate算法,该算法是无损文件压缩和解压缩的行业标准算法。从net_v45开始,DeflateStream类使用zlib库。