我需要一个在android中使用GZip压缩字符串的示例.我想向方法发送一个像"hello"这样的字符串并获得以下压缩字符串:
BQAAAB + LCAAAAAAABADtvQdgHEmWJSYvbcp7f0r1StfgdKEIgGATJNiQQBDswYjN5pLsHWlHIymrKoHKZVZlXWYWQMztnbz33nvvvffee ++ 997o7nU4n99 // P1xmZAFs9s5K2smeIYCqyB8/fnwfPyLmeVlW/W + GphA2BQAAAA ==
然后我需要解压缩它.谁能给我一个例子并完成以下方法?
private String compressString(String input) {
//...
}
private String decompressString(String input) {
//...
}
Run Code Online (Sandbox Code Playgroud)
谢谢,
更新
根据scessor的回答,现在我有以下4种方法.Android和.net压缩和解压缩方法.除一种情况外,这些方法彼此兼容.我的意思是它们在前3个状态中兼容但在第4个状态下不兼容:
- 状态1)Android.compress < - > Android.decompress :( 好的)
- 状态2)Net.compress < - > Net.decompress :( 好的)
- 状态3)Net.compress - > Android.decompress :( 好的)
- 状态4)Android.compress - > .Net.decompress :( 不行)
任何人都可以解决它吗?
Android方法:
public static String compress(String str) throws IOException {
byte[] blockcopy = ByteBuffer
.allocate(4)
.order(java.nio.ByteOrder.LITTLE_ENDIAN)
.putInt(str.length())
.array();
ByteArrayOutputStream …Run Code Online (Sandbox Code Playgroud) 我们正在开发一个程序,我们需要刷新(强制压缩和发送数据)GZIPOutputStream.问题是,GZIPOutputStream的flush方法不能按预期工作(强制压缩和发送数据),而是Stream等待更多数据进行有效的数据压缩.
当您调用完成时,数据将被压缩并通过输出流发送,但GZIPOutputStream(不是基础流)将被关闭,因此我们无法写入更多数据,直到我们创建新的GZIPOutputStream,这会花费时间和性能.
希望任何人都可以提供帮助.
最好的祝福.