package com.emc.vipr.transform.util; import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import com.emc.vipr.transform.compression.LZMAOutputStream; import SevenZip.Compression.LZMA.Decoder; public class LzmaTest { public static void main(String[] args) { File fin = new File(args[0]); File fout = new File(args[1]); try { FileInputStream fis = new FileInputStream(fin); LZMAOutputStream compOut = new LZMAOutputStream(new BufferedOutputStream(new FileOutputStream(fout)), 4); byte[] buffer = new byte[4096]; int c = 0; while((c = fis.read(buffer)) != -1) { compOut.write(buffer, 0, c); } fis.close(); compOut.close(); compOut = null; Runtime.getRuntime().gc(); System.out.printf("Done. Input size %d compressed size %d\n", fin.length(), fout.length()); System.out.printf("Free: %d max: %d total: %d\n", Runtime.getRuntime().freeMemory(), Runtime.getRuntime().maxMemory(), Runtime.getRuntime().totalMemory()); // Decompress InputStream compIn = new FileInputStream(fout); ByteArrayOutputStream decompOut = new ByteArrayOutputStream((int) fin.length()); Decoder d = new Decoder(); // Read props byte[] props = new byte[5]; compIn.read(props); d.SetDecoderProperties(props); d.Code(compIn, decompOut, -1); System.out.printf("Done. Input size %d uncompressed size %d\n", fout.length(), decompOut.size()); } catch(Exception e) { e.printStackTrace(); } } }