001    package com.ochafik.io;
002    import java.io.OutputStream;
003    
004    import javax.swing.JTextArea;
005    import javax.swing.SwingUtilities;
006    public class JTextAreaOutputStream extends OutputStream {
007            JTextArea ta;
008            public JTextAreaOutputStream(JTextArea t) {
009                    ta=t;
010            }
011            private class Appender implements Runnable {
012                    public Appender(String st) {
013                            string=st;
014                    }
015                    String string;
016                    public void run() {
017                            ta.append(string);
018                    }               
019            };
020            public void close() {ta=null;}
021            public void write(int i) {
022                    SwingUtilities.invokeLater(new Appender(new String(new byte[]{(byte)i})));
023            }
024            public void write(byte b[]) {
025                    SwingUtilities.invokeLater(new Appender(new String(b)));
026            }
027            public void write(byte b[],int s,int l) {
028                    SwingUtilities.invokeLater(new Appender(new String(b,s,l)));
029            }
030    }
031