
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import LZMA.LzmaInputStream;



public class UnLzma {

	static int main2(String args[]) {
		System.out.println("\nLZMA Decoder 4.02 Copyright (c) 1999-2004 Igor Pavlov  2004-06-10");
		System.out.println("JAVA LZMA Decoder 0.90  myspace\n");

		if (args.length < 1 || args.length > 2) {
			System.out.println("\nUsage:  UnLzma file.lzma [outFile]\n");
			return 1;
		}
		try {
			File fileInput = new File(args[0]);
			FileInputStream fileInputHandle = new FileInputStream(fileInput);
			LzmaInputStream inputHandle = new LzmaInputStream(fileInputHandle);

			OutputStream outputHandle;
			if (args.length > 1) {
				outputHandle = new FileOutputStream(new File(args[1]));
			} else {
				outputHandle = new ByteArrayOutputStream();
			}

			byte [] buffer = new byte [1<<14];

			int ret = inputHandle.read(buffer);
			while (ret >= 1) {
				outputHandle.write(buffer,0,ret);
				ret = inputHandle.read(buffer);
			}

			inputHandle.close();
			outputHandle.close();

			outputHandle = null;
			inputHandle = null;
			return 0;
		} catch (FileNotFoundException e) {
			System.out.println(e.getMessage());
			return 1;
		} catch (IOException e) {
			System.out.println(e.getMessage());
			return 1;
		}
	}

	public static void main(String[] args) {
		long temps = System.currentTimeMillis();
		int code = main2(args);
		temps = System.currentTimeMillis() - temps;
		System.out.println("time : " + temps + " ms");
		System.exit(code);
	}
}

