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();
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
}
}
}
aW1wb3J0IGphdmEudXRpbC56aXAuRGVmbGF0ZXI7CmltcG9ydCBqYXZhLnV0aWwuemlwLkluZmxhdGVyOwoKY2xhc3MgSGVsbG9Xb3JsZCAgewoKCXB1YmxpYyBIZWxsb1dvcmxkKCkgewoJfQoJCglwcml2YXRlIHN0YXRpYyB2b2lkIHByaW50QihieXRlW10gZCwgaW50IGxlbikgewoJCWZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKCQkJU3lzdGVtLm91dC5wcmludGYoIiUwMlggIiwgZFtpXSk7CgkJfQoJCVN5c3RlbS5vdXQucHJpbnRsbigpOwoJfQoKCXByaXZhdGUgc3RhdGljIHZvaWQgcHJpbnREKGJ5dGVbXSBkLCBpbnQgbGVuKSB7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykgewoJCQlTdHJpbmcgcyA9ICIwMDAwMDAwMCIgKyBJbnRlZ2VyLnRvU3RyaW5nKDB4RkYgJiBkW2ldLCAyKSArICIgIjsKCQkJU3lzdGVtLm91dC5wcmludChzLnN1YnN0cmluZyhzLmxlbmd0aCgpIC0gOSkpOwoJCX0KCQlTeXN0ZW0ub3V0LnByaW50bG4oKTsKCX0KCQoJcHJpdmF0ZSBzdGF0aWMgdm9pZCBwcmludFIoYnl0ZVtdIGQsIGludCBsZW4pIHsKCQlmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CgkJCVN0cmluZyBzID0gIjAwMDAwMDAwIiArIEludGVnZXIudG9TdHJpbmcoMHhGRiAmIGRbaV0sIDIpOwoJCQlTdHJpbmdCdWlsZGVyIGIgPSBuZXcgU3RyaW5nQnVpbGRlcihzLnN1YnN0cmluZyhzLmxlbmd0aCgpIC0gOCkpOwoJCQlTeXN0ZW0ub3V0LnByaW50KGIucmV2ZXJzZSgpICsgIiAiKTsKCQl9CgkJU3lzdGVtLm91dC5wcmludGxuKCk7Cgl9CgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24gewoKCQkgdHJ5IHsKCQkgICAgIC8vIEVuY29kZSBhIFN0cmluZyBpbnRvIGJ5dGVzCgkJICAgICBTdHJpbmcgaW5wdXRTdHJpbmcgPSAiYmxhaGJsYWhibGFoIjsKCQkgICAgIGJ5dGVbXSBpbnB1dCA9IGlucHV0U3RyaW5nLmdldEJ5dGVzKCJVVEYtOCIpOwoKCQkgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5wdXQ6Iik7CgkJICAgICBIZWxsb1dvcmxkLnByaW50QihpbnB1dCwgaW5wdXQubGVuZ3RoKTsKCQkgICAgIEhlbGxvV29ybGQucHJpbnREKGlucHV0LCBpbnB1dC5sZW5ndGgpOwoJCSAgICAgSGVsbG9Xb3JsZC5wcmludFIoaW5wdXQsIGlucHV0Lmxlbmd0aCk7CgkJICAgICAKCQkgICAgIC8vIENvbXByZXNzIHRoZSBieXRlcwoJCSAgICAgYnl0ZVtdIG91dHB1dCA9IG5ldyBieXRlWzEwMF07CgkJICAgICBEZWZsYXRlciBjb21wcmVzc2VyID0gbmV3IERlZmxhdGVyKERlZmxhdGVyLkRFRkFVTFRfQ09NUFJFU1NJT04sIHRydWUpOwoJCSAgICAgY29tcHJlc3Nlci5zZXRJbnB1dChpbnB1dCk7CgkJICAgICBjb21wcmVzc2VyLmZpbmlzaCgpOwoJCSAgICAgaW50IGNvbXByZXNzZWREYXRhTGVuZ3RoID0gY29tcHJlc3Nlci5kZWZsYXRlKG91dHB1dCk7CgkJICAgICBjb21wcmVzc2VyLmVuZCgpOwoKCQkgICAgIFN5c3RlbS5vdXQucHJpbnRsbigib3V0cHV0OiIpOwoJCSAgICAgSGVsbG9Xb3JsZC5wcmludEIob3V0cHV0LCBjb21wcmVzc2VkRGF0YUxlbmd0aCk7CgkJICAgICBIZWxsb1dvcmxkLnByaW50RChvdXRwdXQsIGNvbXByZXNzZWREYXRhTGVuZ3RoKTsKCQkgICAgIEhlbGxvV29ybGQucHJpbnRSKG91dHB1dCwgY29tcHJlc3NlZERhdGFMZW5ndGgpOwoJCSAgICAgCgkJICAgICAvLyBEZWNvbXByZXNzIHRoZSBieXRlcwoJCSAgICAgSW5mbGF0ZXIgZGVjb21wcmVzc2VyID0gbmV3IEluZmxhdGVyKHRydWUpOwoJCSAgICAgZGVjb21wcmVzc2VyLnNldElucHV0KG91dHB1dCwgMCwgY29tcHJlc3NlZERhdGFMZW5ndGgpOwoJCSAgICAgYnl0ZVtdIHJlc3VsdCA9IG5ldyBieXRlWzEwMF07CgkJICAgICBpbnQgcmVzdWx0TGVuZ3RoID0gZGVjb21wcmVzc2VyLmluZmxhdGUocmVzdWx0KTsKCQkgICAgIGRlY29tcHJlc3Nlci5lbmQoKTsKCQkgICAgIAoJCSAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkZWNvbXByZXNzOiIpOwoJCSAgICAgSGVsbG9Xb3JsZC5wcmludEIocmVzdWx0LCAgcmVzdWx0TGVuZ3RoKTsKCgkJICAgICAvLyBEZWNvZGUgdGhlIGJ5dGVzIGludG8gYSBTdHJpbmcKCQkgICAgIFN0cmluZyBvdXRwdXRTdHJpbmcgPSBuZXcgU3RyaW5nKHJlc3VsdCwgMCwgcmVzdWx0TGVuZ3RoLCAiVVRGLTgiKTsKCQkgICAgIFN5c3RlbS5vdXQucHJpbnRsbihvdXRwdXRTdHJpbmcpOwoJCSB9IGNhdGNoKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKCQkgCWV4LnByaW50U3RhY2tUcmFjZSgpOwoJCSB9IGNhdGNoKGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBleCkgewoJCSAgICAgLy8gaGFuZGxlCgkJIH0gY2F0Y2ggKGphdmEudXRpbC56aXAuRGF0YUZvcm1hdEV4Y2VwdGlvbiBleCkgewoJCSAgICAgLy8gaGFuZGxlCgkJIH0KCQkgCgkJCgl9Cgp9