棣栧厛鑷畾涔変竴涓狾utputStream
import java.io.OutputStream;
import javax.swing.JTextArea;
/**
聽*
聽* @author聽鏉ㄥ簡鎴惵?/
public class GuiOutputStream extends OutputStream{
聽聽聽 private JTextArea _text;
聽聽聽 private byte _c;
聽聽聽 private boolean _b=false;
聽聽聽
聽聽聽 /** Creates a new instance of GuiOutputStream */
聽聽聽 public GuiOutputStream(JTextArea text) {
聽聽聽聽聽聽聽 _text=text;
聽聽聽 }
聽聽聽
聽聽聽 public void write(int i){
聽聽聽聽聽聽聽 try{
聽聽聽聽聽聽聽聽聽聽聽 byte c=(byte)i;
聽聽聽聽聽聽聽聽聽聽聽 if(_b){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 _b=false;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 byte[] bs=new byte[2];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 bs[0]=_c;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 bs[1]=c;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 _text.append(new String(bs));
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 else if(c>0){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 _b=false;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 _text.append(String.valueOf((char)c));
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 else{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 _b=true;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 _c=c;
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 catch(Exception ex){
聽聽聽聽聽聽聽聽聽聽聽 ex.printStackTrace();
聽聽聽聽聽聽聽 }
聽聽聽 }
聽聽聽
}
浣跨敤鏂瑰紡
閲嶆柊瀹氬悜OutputStream
聽聽聽聽聽聽聽 JTextArea jTextArea1 = new javax.swing.JTextArea();
聽聽聽聽聽聽聽 PrintStream out=new PrintStream(new GuiOutputStream(jTextArea1));
聽聽聽聽聽聽聽 System.setOut(out);
Log4j閰嶇疆鏂囦歡涓瑼ppender璁劇疆鎴恛rg.apache.log4j.ConsoleAppender

]]>