1. C # code (sharpziplib needs to be called ):
Using system. io; using system. text; using icsharpcode. sharpziplib. zip. compression. streams; namespace consoleapplicationdemo {public class ziphelper {// <summary> // compress the string in Deflater mode, returns a byte array /// </Summary> /// <Param name = "sstring"> </param> /// <returns> </returns> Public static byte [] zipstr (string sstring) {If (sstring = NULL) return NULL; byte [] bytes = encoding. utf8.getbytes (sstring); Return zipbyte (bytes );} /// <summary> /// compress the byte array in Deflater mode // </Summary> /// <Param name = "bytes"> </param> /// <returns> </returns> Public static byte [] zipbyte (byte [] bytes) {If (Bytes = NULL) {return NULL;} memorystream MS = new memorystream (); Using (deflateroutputstream zstream = new deflateroutputstream (MS) {zstream. write (bytes, 0, bytes. length); zstream. finish (); zstream. close ();} byte [] result = Ms. toarray (); Ms. close (); return result ;} /// <summary> /// extract the byte array /// </Summary> /// <Param name = "bytes"> </param> /// <returns> </returns> Public static byte [] unzip (byte [] bytes) {If (Bytes = NULL) {return NULL;} memorystream MS = new memorystream (); Using (inflaterinputstream stream = new inflaterinputstream (MS) {stream. write (bytes, 0, bytes. length); stream. flush (); stream. close ();} byte [] result = Ms. toarray (); Ms. close (); return result ;}}}
2. Android code:
Package COM. google. test; import Java. io. bytearrayoutputstream; import Java. io. ioexception; import Java. io. unsupportedencodingexception; import java.util.zip. *; public class ziphelper {private final static int cachesize = 1024; /***** zip compression ** @ Param data * @ return */public static byte [] zipbyte (byte [] data) {Deflater compresser = new Deflater (); compresser. reset (); compresser. setinput (data); compresser. fin Ish (); byte result [] = new byte [0]; bytearrayoutputstream o = new bytearrayoutputstream (1); try {byte [] Buf = new byte [cachesize]; int got = 0; while (! Compresser. finished () {got = compresser. deflate (BUF); O. write (BUF, 0, got);} result = O. tobytearray ();} catch (exception e) {e. printstacktrace ();} finally {try {o. close ();} catch (ioexception e) {e. printstacktrace ();} compresser. end ();} return result;}/*** compressed string ** @ Param data * @ return */public static byte [] zipstring (string data) {byte [] input = new byte [0]; try {input = data. getbytes ("UTF-8 ");} Catch (unsupportedencodingexception e) {e. printstacktrace (); return NULL;} byte [] result = ziphelper.zip byte (input); return result ;} /***** decompress the ZIP file ** @ Param data * @ return */public static byte [] unzipbyte (byte [] data) {Inflater decompresser = new Inflater (); decompresser. setinput (data); byte result [] = new byte [0]; bytearrayoutputstream o = new bytearrayoutputstream (1); try {byte [] Buf = new byte [caches Ize]; int got = 0; while (! Decompresser. finished () {got = decompresser. inflate (BUF); O. write (BUF, 0, got);} result = O. tobytearray ();} catch (exception e) {e. printstacktrace ();} finally {try {o. close ();} catch (ioexception e) {e. printstacktrace ();} decompresser. end ();} return result;}/***** extract the zip data as string ** @ Param data * @ return */public static string unzipbytetostring (byte [] data) {byte [] result = unzipbyte (data); string outputstring = NULL; try {outputstring = new string (result, 0, result. length, "UTF-8");} catch (unsupportedencodingexception e) {e. printstacktrace () ;}return outputstring ;}}