import java.util.zip.Deflater;
import java.util.zip.Inflater;
class HelloWorld {
public HelloWorld() {
}
private static void printB(byte[] d, int len) {
for (int i = 0; i < len; i++) {
System.
out.
printf("%02X ", d
[i
]); }
}
private static void printD(byte[] d, int len) {
for (int i = 0; i < len; i++) {
System.
out.
print(s.
substring(s.
length() - 9)); }
}
private static void printR(byte[] d, int len) {
for (int i = 0; i < len; i++) {
StringBuilder b = new StringBuilder(s.substring(s.length() - 8));
System.
out.
print(b.
reverse() + " "); }
}
try {
// Encode a String into bytes
String inputString
= "blahblahblah"; byte[] input = inputString.getBytes("UTF-8");
HelloWorld.printB(input, input.length);
HelloWorld.printD(input, input.length);
HelloWorld.printR(input, input.length);
// Compress the bytes
byte[] output = new byte[100];
compresser.setInput(input);
compresser.finish();
int compressedDataLength = compresser.deflate(output);
compresser.end();
output[0] = 0x4B;
output[1] = -54; //0xCA;
output[2] = 0x49;
output[3] = -52; // 0xCC;
output[4] = -128; //0x80;
output[5] = 0x62;
output[6] = 0x00;
compressedDataLength = 7;
System.
out.
println("output:"); HelloWorld.printB(output, compressedDataLength);
HelloWorld.printD(output, compressedDataLength);
HelloWorld.printR(output, compressedDataLength);
// Decompress the bytes
decompresser.setInput(output, 0, compressedDataLength);
byte[] result = new byte[100];
int resultLength = decompresser.inflate(result);
decompresser.end();
System.
out.
println("decompress:"); HelloWorld.printB(result, resultLength);
// Decode the bytes into a String
String outputString
= new String(result,
0, resultLength,
"UTF-8"); System.
out.
println(outputString
); ex.printStackTrace();
// handle
// handle
}
}
}
aW1wb3J0IGphdmEudXRpbC56aXAuRGVmbGF0ZXI7CmltcG9ydCBqYXZhLnV0aWwuemlwLkluZmxhdGVyOwoKY2xhc3MgSGVsbG9Xb3JsZCAgewoKCXB1YmxpYyBIZWxsb1dvcmxkKCkgewoJfQoJCglwcml2YXRlIHN0YXRpYyB2b2lkIHByaW50QihieXRlW10gZCwgaW50IGxlbikgewoJCWZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKCQkJU3lzdGVtLm91dC5wcmludGYoIiUwMlggIiwgZFtpXSk7CgkJfQoJCVN5c3RlbS5vdXQucHJpbnRsbigpOwoJfQoKCXByaXZhdGUgc3RhdGljIHZvaWQgcHJpbnREKGJ5dGVbXSBkLCBpbnQgbGVuKSB7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykgewoJCQlTdHJpbmcgcyA9ICIwMDAwMDAwMCIgKyBJbnRlZ2VyLnRvU3RyaW5nKDB4RkYgJiBkW2ldLCAyKSArICIgIjsKCQkJU3lzdGVtLm91dC5wcmludChzLnN1YnN0cmluZyhzLmxlbmd0aCgpIC0gOSkpOwoJCX0KCQlTeXN0ZW0ub3V0LnByaW50bG4oKTsKCX0KCQoJcHJpdmF0ZSBzdGF0aWMgdm9pZCBwcmludFIoYnl0ZVtdIGQsIGludCBsZW4pIHsKCQlmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CgkJCVN0cmluZyBzID0gIjAwMDAwMDAwIiArIEludGVnZXIudG9TdHJpbmcoMHhGRiAmIGRbaV0sIDIpOwoJCQlTdHJpbmdCdWlsZGVyIGIgPSBuZXcgU3RyaW5nQnVpbGRlcihzLnN1YnN0cmluZyhzLmxlbmd0aCgpIC0gOCkpOwoJCQlTeXN0ZW0ub3V0LnByaW50KGIucmV2ZXJzZSgpICsgIiAiKTsKCQl9CgkJU3lzdGVtLm91dC5wcmludGxuKCk7Cgl9CgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24gewoKCQkgdHJ5IHsKCQkgICAgIC8vIEVuY29kZSBhIFN0cmluZyBpbnRvIGJ5dGVzCgkJICAgICBTdHJpbmcgaW5wdXRTdHJpbmcgPSAiYmxhaGJsYWhibGFoIjsKCQkgICAgIGJ5dGVbXSBpbnB1dCA9IGlucHV0U3RyaW5nLmdldEJ5dGVzKCJVVEYtOCIpOwoKCQkgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5wdXQ6Iik7CgkJICAgICBIZWxsb1dvcmxkLnByaW50QihpbnB1dCwgaW5wdXQubGVuZ3RoKTsKCQkgICAgIEhlbGxvV29ybGQucHJpbnREKGlucHV0LCBpbnB1dC5sZW5ndGgpOwoJCSAgICAgSGVsbG9Xb3JsZC5wcmludFIoaW5wdXQsIGlucHV0Lmxlbmd0aCk7CgkJICAgICAKCQkgICAgIC8vIENvbXByZXNzIHRoZSBieXRlcwoJCSAgICAgYnl0ZVtdIG91dHB1dCA9IG5ldyBieXRlWzEwMF07CgkJICAgICBEZWZsYXRlciBjb21wcmVzc2VyID0gbmV3IERlZmxhdGVyKAoJCSAgICAgCURlZmxhdGVyLkRFRkFVTFRfQ09NUFJFU1NJT04sIHRydWUpOwoJCSAgICAgY29tcHJlc3Nlci5zZXRJbnB1dChpbnB1dCk7CgkJICAgICBjb21wcmVzc2VyLmZpbmlzaCgpOwoJCSAgICAgaW50IGNvbXByZXNzZWREYXRhTGVuZ3RoID0gY29tcHJlc3Nlci5kZWZsYXRlKG91dHB1dCk7CgkJICAgICBjb21wcmVzc2VyLmVuZCgpOwoKCQkgICAgIG91dHB1dFswXSA9IDB4NEI7CgkJICAgICBvdXRwdXRbMV0gPSAtNTQ7IC8vMHhDQTsKCQkgICAgIG91dHB1dFsyXSA9IDB4NDk7CgkJICAgICBvdXRwdXRbM10gPSAtNTI7IC8vIDB4Q0M7CgkJICAgICBvdXRwdXRbNF0gPSAtMTI4OyAvLzB4ODA7CgkJICAgICBvdXRwdXRbNV0gPSAweDYyOwoJCSAgICAgb3V0cHV0WzZdID0gMHgwMDsKCQkgICAgIGNvbXByZXNzZWREYXRhTGVuZ3RoID0gNzsKCQkgICAgIAoJCSAgICAgCgkJICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm91dHB1dDoiKTsKCQkgICAgIEhlbGxvV29ybGQucHJpbnRCKG91dHB1dCwgY29tcHJlc3NlZERhdGFMZW5ndGgpOwoJCSAgICAgSGVsbG9Xb3JsZC5wcmludEQob3V0cHV0LCBjb21wcmVzc2VkRGF0YUxlbmd0aCk7CgkJICAgICBIZWxsb1dvcmxkLnByaW50UihvdXRwdXQsIGNvbXByZXNzZWREYXRhTGVuZ3RoKTsKCQkgICAgIAoJCSAgICAgLy8gRGVjb21wcmVzcyB0aGUgYnl0ZXMKCQkgICAgIEluZmxhdGVyIGRlY29tcHJlc3NlciA9IG5ldyBJbmZsYXRlcih0cnVlKTsKCQkgICAgIGRlY29tcHJlc3Nlci5zZXRJbnB1dChvdXRwdXQsIDAsIGNvbXByZXNzZWREYXRhTGVuZ3RoKTsKCQkgICAgIGJ5dGVbXSByZXN1bHQgPSBuZXcgYnl0ZVsxMDBdOwoJCSAgICAgaW50IHJlc3VsdExlbmd0aCA9IGRlY29tcHJlc3Nlci5pbmZsYXRlKHJlc3VsdCk7CgkJICAgICBkZWNvbXByZXNzZXIuZW5kKCk7CgkJICAgICAKCQkgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGVjb21wcmVzczoiKTsKCQkgICAgIEhlbGxvV29ybGQucHJpbnRCKHJlc3VsdCwgIHJlc3VsdExlbmd0aCk7CgoJCSAgICAgLy8gRGVjb2RlIHRoZSBieXRlcyBpbnRvIGEgU3RyaW5nCgkJICAgICBTdHJpbmcgb3V0cHV0U3RyaW5nID0gbmV3IFN0cmluZyhyZXN1bHQsIDAsIHJlc3VsdExlbmd0aCwgIlVURi04Iik7CgkJICAgICBTeXN0ZW0ub3V0LnByaW50bG4ob3V0cHV0U3RyaW5nKTsKCQkgfSBjYXRjaChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KSB7CgkJIAlleC5wcmludFN0YWNrVHJhY2UoKTsKCQkgfSBjYXRjaChqYXZhLmlvLlVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gZXgpIHsKCQkgICAgIC8vIGhhbmRsZQoJCSB9IGNhdGNoIChqYXZhLnV0aWwuemlwLkRhdGFGb3JtYXRFeGNlcHRpb24gZXgpIHsKCQkgICAgIC8vIGhhbmRsZQoJCSB9CgkJIAoJCQoJfQoKfQ==