⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pipereadertest.java

📁 流 的目的在于屏蔽IO操作的复杂性
💻 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 + -