File
PipedReader PipedWriter example
In this example we shall show you how to use the PipedReader and the PipedWriter. The PipedReader is a class for reading piped character-input streams, whereas the PipedWriter is a class for writing to piped character-output streams. To use the PipedReader and the PipedWriter we have performed the following steps:
- We have created a thread,
MyThreadthat extends the Thread. It has a PipedReader and a PipedWriter property. It overrides therun()API method of Thread. In the method, according to the thread name, it uses either the PipedReader to read or the PipedWriter to write, - We create a new PipedReader and a new PipedWriter and create two new instances of MyThread using the PipedReader and the PipedWriter.
- We cause the first thread’s execution to start first, and then the second thread’s execution,
as described in the code snippet below.
package com.javacodegeeks.snippets.core;
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("Thread 1" + cnt + "n");
}
pw.close();
} else {
int item;
while ((item = pr.read()) != -1) {
System.out.print((char) item);
}
pr.close();
}
} catch (IOException e) {
}
}
}
public class PipedThreads {
public static void main(String[] args) throws Exception {
PipedWriter pw = new PipedWriter();
PipedReader pr = new PipedReader(pw);
MyThread mt1 = new MyThread("Thread 1", pr, pw);
MyThread mt2 = new MyThread("Therad 2", pr, pw);
mt1.start();
Thread.sleep(2000);
mt2.start();
}
}
Output:
Thread 1 0
Thread 1 1
Thread 1 2
Thread 1 3
Thread 1 4
Thread 1 5
Thread 1 6
Thread 1 7
Thread 1 8
Thread 1 9
Thread 1 10
Thread 1 11
Thread 1 12
Thread 1 13
Thread 1 14
This was an example of the PipedReader and the PipedWriter in Java.
