📄 pipereadertest.java
字号:
import java.util.*;
import java.io.*;
public class PipeReaderTest
{
public static void main(String args[])
{
try
{
/*建立管道*/
PipedWriter pwriter = new PipedWriter();
PipedReader preader = new PipedReader(pwriter);
/*构造线程*/
Producer pro = new Producer(pwriter);
Consumer con = new Consumer(preader);
Thread proThread = new Thread(pro);
Thread conThread = new Thread(con);
proThread.start();
conThread.start();
}
catch(IOException e)
{
System.out.println("Main Error: "+e);
}
}
}
class Producer implements Runnable
{
private Writer pwr;
String source="It is a test for PipedReader/PipedWriter!";
private int count=0;
private Random rand = new Random();
public Producer(Writer wr)
{
pwr = wr;
}
public void run()
{
try
{
while(count<source.length())
{
char cc = source.charAt(count);
count++;
System.out.println("The "+count+"th character produced by producer is: "+cc+"\r\n");
pwr.write(cc);
pwr.flush();
Thread.sleep(Math.abs(rand.nextInt()%1000));
}
pwr.close();
}
catch(Exception e)
{
System.out.println("Producer Error: "+e);
}
}
}
class Consumer implements Runnable
{
private Reader prd;
private int count = 0;
public Consumer(Reader rd)
{
prd = rd;
}
public void run()
{
try
{
int cc;
while((cc=prd.read())!=-1)
{
count++;
System.out.println("The "+count+"th character consumed by consumer is: "+(char)cc+"\r\n");
}
prd.close();
}
catch(IOException e)
{
System.out.println("Consumer Error: "+e);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -