java用
Deflater compresser = new Deflater();
compresser.setInput(input);
compresser.finish();
//压缩数据并返回压缩后的长度
int compressedDataLength =compresser.deflate(output);
//分离压缩后的数据
byte[] encodestrig = new byte[compressedDataLength];
System.arraycopy(output, 0,
encodestrig, 0, compressedDataLe
服务器c++:
Byte buf[1024];
memset(buf,0,1024);
memcpy(buf,strdata.c_str(),strdata.size());
Byteodata[1024];
memset(odata,0,1024);
uLongnodata=1024;
zdecompress(buf,strdata.size(),odata,&nodata);
这个完全能够解决。
这个貌似处理不了
首先java的压缩算法和C++的压缩算法可能不同
其次解压缩的时候尽量使用 二进制 打开文件读取数据
最大的问题就在于 C++ 的 数据类型在不同的机器上 字节是不同的,java却是相同的,所以一般用什么压缩就用什么解压
首先你得搞清楚:Java的压缩/解压算法和C++中的压缩解压算法是不是一样,不是的话很定不行。他用的算法不一样的话(就像你用ios/android你可以知道平台不一样,有些东西是不只是的)
然后你可找C++中和java中那个压缩算法一样的方法来解压!
应该是两者默认的格式不同吧