Sunday, 11 June 2017

Java Tutorial : Java IO (PipedReader and PipedWriter-V5) ~ foundjava


Click here to watch in Youtube : 

MyThread.java
import java.io.IOException;
import java.io.PipedReader;
import java.io.PipedWriter;

class MyThread extends Thread
{

    private PipedReader pr;
    private PipedWriter pw;

    MyThread(String name, PipedReader pr, PipedWriter pw)
    {

        super(name);
        this.pr = pr;
        this.pw = pw;
    }

    @Override
    public void run()
    {

        try
        {
            if (getName().equals("Thread 1"))
            {
                for (int cnt = 0; cnt < 15; cnt++)
                {
                    pw.write("Welcome " + cnt + "\n");
                }
                pw.close();
            }
            else
            {

                int data;
                while ((data = pr.read()) != -1)
                {
                    System.out.print((char) data);
                }
                pr.close();
            }

        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}
PipedReadWriteDemo.java
import java.io.PipedReader;
import java.io.PipedWriter;

/*
 * We have created a thread, MyThread that extends the
 * Thread. It has a PipedReader and a PipedWriter
 * property. It overrides the run() API method of
 * Thread. In the method, according to the thread name,
 * it uses either the PipedReader to read or the
 * PipedWriter to write
 */

public class PipedReadWriteDemo
{

    public static void main(String[] args) throws Exception
    {

        /*
         * The PipedWriter is a class for writing to piped
         * character-output streams.
         */
        PipedWriter pw = new PipedWriter();
        /*
         * The PipedReader is a class for reading piped
         * character-input streams,
         */
        PipedReader pr = new PipedReader(pw);

        MyThread mt1 = new MyThread("Thread 1", pr, pw);
        MyThread mt2 = new MyThread("Thread 2", pr, pw);

        mt1.start();
        Thread.sleep(2000);
        mt2.start();
    }
}
Output
Welcome 0
Welcome 1
Welcome 2
Welcome 3
Welcome 4
Welcome 5
Welcome 6
Welcome 7
Welcome 8
Welcome 9
Welcome 10
Welcome 11
Welcome 12
Welcome 13
Welcome 14

Click the below link to download the code:

CLICK HERE

No comments:

Post a Comment