适用于Android的Xamarin C#:Zlib替代方案
我目前正在从sqlite数据库读取数据。 我在一篇专栏文章中遇到了麻烦 该列中的数据被压缩。 在Java中,我们可以使用Zlib,并且可以轻松地读取数据适用于Android的Xamarin C#:Zlib替代方案,c#,android,xamarin,zlib,C#,Android,Xamarin,Zlib,我目前正在从sqlite数据库读取数据。 我在一篇专栏文章中遇到了麻烦 该列中的数据被压缩。 在Java中,我们可以使用Zlib,并且可以轻松地读取数据 data = zlib.decompress(row[3]) 我看到Xamarin没有在其IDE中翻译zlib,也没有内置的标准替代品。。 我见过一些可用的Zip组件,但它们集中在文件上,而不是直接提供数据 在Xamarin C#你会怎么做 编辑:到目前为止的代码 var myCompressedData = cursor.GetBlob
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 );
您可以通过使用类来实现这一点 它包装了zlib,或者在旧版本中提供了一个标准的内置替代方案 此类表示Deflate算法,它是无损文件压缩和解压缩的行业标准算法。从net_v45开始,DeflateStream类使用zlib库
请看一下我的编辑。。试图让泄气气流work@Migz如何将字符串转换为流是一个独立的问题,也是一个经常被问到的问题:谢谢你的提示。。但是还没有走出困境。。有个错误。。(新编辑)。。如此接近。。顺便说一句,这些数据是用Java测试的,所以不确定为什么会出现新错误。。