FileDocCategorySizeDatePackage
IOUtil.javaAPI DocApache Commons NET 1.4.1 API3206Sat Dec 03 10:05:48 GMT 2005examples

IOUtil

public final class IOUtil extends Object
This is a utility class providing a reader/writer capability required by the weatherTelnet, rexec, rshell, and rlogin example programs. The only point of the class is to hold the static method readWrite which spawns a reader thread and a writer thread. The reader thread reads from a local input source (presumably stdin) and writes the data to a remote output destination. The writer thread reads from a remote input source and writes to a local output destination. The threads terminate when the remote input source closes.

Fields Summary
Constructors Summary
Methods Summary
public static final voidreadWrite(java.io.InputStream remoteInput, java.io.OutputStream remoteOutput, java.io.InputStream localInput, java.io.OutputStream localOutput)

        Thread reader, writer;

        reader = new Thread()
                 {
                     public void run()
                     {
                         int ch;

                         try
                         {
                             while (!interrupted() && (ch = localInput.read()) != -1)
                             {
                                 remoteOutput.write(ch);
                                 remoteOutput.flush();
                             }
                         }
                         catch (IOException e)
                         {
                             //e.printStackTrace();
                         }
                     }
                 }
                 ;


        writer = new Thread()
                 {
                     public void run()
                     {
                         try
                         {
                             Util.copyStream(remoteInput, localOutput);
                         }
                         catch (IOException e)
                         {
                             e.printStackTrace();
                             System.exit(1);
                         }
                     }
                 };


        writer.setPriority(Thread.currentThread().getPriority() + 1);

        writer.start();
        reader.setDaemon(true);
        reader.start();

        try
        {
            writer.join();
            reader.interrupt();
        }
        catch (InterruptedException e)
        {
        }