欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java 将标准输出重定向到一个窗口中,重定向一个窗口,import java.

来源: javaer 分享于  点击 21088 次 点评:246

java 将标准输出重定向到一个窗口中,重定向一个窗口,import java.


import java.awt.*;import java.awt.event.*;import java.io.*;public class RedirectedFrame extends Frame {   TextArea aTextArea = new TextArea();   PrintStream aPrintStream  =       new PrintStream(        new FilteredStream(          new ByteArrayOutputStream()));   boolean logFile;   RedirectedFrame(boolean logFile) {      this.logFile = logFile;      System.setOut(aPrintStream);      System.setErr(aPrintStream);      setTitle("Error message");      setSize(500,300);      setLayout(new BorderLayout());      add("Center" , aTextArea);      displayLog();      addWindowListener         (new WindowAdapter() {            public void windowClosing(WindowEvent e) {               dispose();               }            }         );      }   class FilteredStream extends FilterOutputStream {      public FilteredStream(OutputStream aStream) {         super(aStream);         }      public void write(byte b[]) throws IOException {         String aString = new String(b);         aTextArea.append(aString);         }      public void write(byte b[], int off, int len) throws IOException {         String aString = new String(b , off , len);         aTextArea.append(aString);         if (logFile) {            FileWriter aWriter = new FileWriter("error.log", true);            aWriter.write(aString);            aWriter.close();            }         }      }   public void displayLog() {      Dimension dim = getToolkit().getScreenSize();      Rectangle abounds = getBounds();      Dimension dd = getSize();      setLocation((dim.width - abounds.width) / 2,         (dim.height - abounds.height) / 2);      setVisible(true);      requestFocus();      }   public static void main(String s[]){      try {         // force an exception for demonstration purpose         Class.forName("unknown").newInstance();         }      catch (Exception e) {          // for applet, always RedirectedFrame(false)         RedirectedFrame r = new RedirectedFrame(true);         e.printStackTrace();         }      }   }
相关栏目:

用户点评