public static void main(String[] args) {

		InputStream in;
		OutputStream out;
		
		leer_parametros(args);
		
		if (archivo.equals("-"))
		{
			in = System.in;
			out = System.out;
		}
		else
		{
			FileInputStream inFile;
			FileOutputStream outFile;
			
			try
			{
				inFile = new FileInputStream(archivo);
			}
			catch (FileNotFoundException e)
			{
				System.err.println("Archivo no encontrado");
				System.exit(1);
				return;
			}
			
			String archivo_salida;
			switch (action)
			{
				case COMPRESS:
					archivo_salida = archivo + ".ppm";
				break;
				case DECOMPRESS:
					archivo_salida = archivo + ".ppmdec";
				break;
				default:
					throw new IllegalArgumentException("Nada que hacer");
			}
			
			try
			{
				outFile = new FileOutputStream(archivo_salida);
			} catch (FileNotFoundException e) {
				System.err.println("Problema al crear el archivo de salida");
				System.exit(1);
				return;
			}
			
			in = new BufferedInputStream(inFile);
			out = new BufferedOutputStream(outFile);
		}
		
		try
		{
			switch (action)
			{
				case COMPRESS:
					compress(in, out, order);
				break;
				case DECOMPRESS:
					decompress(in, out, order);
				break;
			}
		}
		catch (IOException e) {
			System.err.println("Problema de entrada/salida");
			e.printStackTrace();
		}
		
		try
		{
			in.close();
			out.close();
		}
		catch (IOException e) {
			System.err.println("Problema al cerrar archivos");
			e.printStackTrace();
		}
	}