// compressing
in = new BufferedInputStream(new FileInputStream(sourceFile));
out = new BufferedOutputStream(new FileOutputStream(compressedFile));
final Encoder encoder = new Encoder();
encoder.setDictionarySize(1 << 23);
encoder.setEndMarkerMode(true);
encoder.setMatchFinder(Encoder.EMatchFinderTypeBT4);
encoder.setNumFastBytes(0x20);
encoder.writeCoderProperties(out);
long fileSize = sourceFile.length();
for (int i = 0; i < 8; i++)
{
out.write((int) (fileSize >>> (8 * i)) & 0xFF);
}
encoder.code(in, out, -1, -1, null);
out.flush();
out.close();
in.close();
// decompressing