1 4 package com.tc.process; 5 6 import java.io.BufferedReader ; 7 import java.io.BufferedWriter ; 8 import java.io.IOException ; 9 import java.io.InputStream ; 10 import java.io.InputStreamReader ; 11 import java.io.OutputStream ; 12 import java.io.OutputStreamWriter ; 13 import java.io.PrintWriter ; 14 15 public class StreamAppender { 16 17 private PrintWriter output; 18 private Thread outWriter; 19 private Thread errWriter; 20 21 public StreamAppender(OutputStream output) { 22 this.output = new PrintWriter (new BufferedWriter (new OutputStreamWriter (output))); 23 } 24 25 public void writeInput(final InputStream err, final InputStream out) { 26 errWriter = new Thread () { 27 BufferedReader reader = new BufferedReader (new InputStreamReader (err)); 28 29 public void run() { 30 try { 31 String line; 32 while ((line = reader.readLine()) != null) { 33 output.println(line); 34 } 35 } catch (IOException e) { 36 e.printStackTrace(); 37 } finally { 38 output.flush(); 39 } 40 } 41 }; 42 43 outWriter = new Thread () { 44 BufferedReader reader = new BufferedReader (new InputStreamReader (out)); 45 46 public void run() { 47 try { 48 String line; 49 while ((line = reader.readLine()) != null) { 50 output.println(line); 51 } 52 } catch (IOException e) { 53 e.printStackTrace(); 54 } finally { 55 output.flush(); 56 } 57 } 58 }; 59 60 errWriter.setDaemon(true); 61 outWriter.setDaemon(true); 62 63 errWriter.start(); 64 outWriter.start(); 65 } 66 67 public void finish() throws Exception { 68 outWriter.join(); 69 errWriter.join(); 70 } 71 72 } 73 | Popular Tags |