All pastes #46188 Raw Edit

Something

public java v1 · immutable
#46188 ·published 2006-03-19 01:30 UTC
rendered paste body
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.Random;public class NativeLauncher {	public static void main(String[] args) {		if(args.length != 4){			System.out.println("Error : Wrong number of inputs");			return;		}		System.out.println("Arguements are...");		int len = ((Integer)args.length).toString().length();		String format = "%0" + len + "d / %0" + len + "d";		for(int i = 0 ; i < args.length ; i++){			System.out.printf(format + " : %s\n",i,args.length - 1,args[i]);		}		execute(args[0],args[1],args[2],args[3]);	}	static void execute(String program, String inputFile, String outputFile, String errorFile){		ProcessBuilder pb = new ProcessBuilder(program);		Process p;		try{			p = pb.start();			p.getOutputStream();			BufferedReader fin    = new BufferedReader(new FileReader(inputFile));			BufferedWriter fout   = new BufferedWriter(new FileWriter(outputFile));			BufferedWriter ferror = new BufferedWriter(new FileWriter(errorFile));			BufferedReader pout   = new BufferedReader(new InputStreamReader (p.getInputStream ()));			BufferedReader perror = new BufferedReader(new InputStreamReader (p.getErrorStream ()));			BufferedWriter pin    = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));			System.out.println("DIRECTORY : " + System.getProperty("user.dir"));			new IOMapper(fin,pin).start();			new IOMapper(pout,fout).start();			new IOMapper(perror,ferror).start();			p.waitFor();		}catch (Exception ex){			ex.printStackTrace();		};	}}class IOMapper extends Thread{	private BufferedReader br;	private BufferedWriter bw;	public IOMapper(BufferedReader br, BufferedWriter bw){		this.br = br;		this.bw = bw;	}	public void run(){		int i;		try{			while((i = br.read()) != -1){				bw.write(i);				//System.out.print((char)i);				//sleep(Math.abs(new Random().nextInt() % 10));			}			bw.close();	// close() has an implicit flush		}catch (Exception ex){			ex.printStackTrace();		};	}}