Decompressing a string using Java.util.zip.Inflater
I am trying to decode the string I am getting. It's deflated compressed here: https://github.com/dankogai/js-deflate And then base64 encoded.
However, when I use java inflater, I get the following error: unknown compression method.
import sun.misc.BASE64Decoder;
public void org() throws Exception{
BASE64Decoder decoder = new BASE64Decoder();
try {
String inputString = "84VWAVDY";
byte[] decodedByteArray = decoder.decodeBuffer(inputString);
// Decompress the bytes
Inflater decompresser = new Inflater();
decompresser.setInput(decodedByteArray);
byte[] result = new byte[100];
int resultLength = decompresser.inflate(result);
decompresser.end();
// Decode the bytes into a String
String outputString = new String(result, 0, resultLength);
System.out.println("OUTPUT:" + outputString);
} catch (Exception e){
System.out.println("Exception: " + e);
}
}
This code is basically a copy / paste from the Java API. I also tried using the new Inflater (true); Ie nowrap
"Note: When using the nowrap option, you also need to provide an extra dummy byte as input. This is required by the native ZLIB to support certain optimizations."
So where does this dummy byte have to be added? At the beginning or end of "byte [] decodedByteArray"?
So, any ideas how to fix this problem? Do I only need to add a dummy byte, do I need to use other methods, etc.?
Well this, I think all help is appreciated!
Hello
John
source to share