线程利用管道字节(字符)流进行通信

来源:互联网 发布:交换机端口隐射功能 编辑:程序博客网 时间:2024/06/06 04:01
<span style="font-size:18px;"><strong>package ThreadStreamChar;import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedReader;import java.io.PipedWriter;public class ThreadInputStream extends Thread{private PipedReader pripeReader;private ServiceReader read;public ThreadInputStream(PipedReader pripeReader, ServiceReader read){this.pripeReader = pripeReader;this.read = read;}public void run(){try {read.read(pripeReader);} catch (IOException e) {e.printStackTrace();}}}package ThreadStreamChar;import java.io.IOException;import java.io.PipedOutputStream;import java.io.PipedWriter;public class ThreadOutPutStream extends Thread{private PipedWriter pripeWriter;private ServiceWiter write;public ThreadOutPutStream(PipedWriter pripeWriter, ServiceWiter write){this.pripeWriter = pripeWriter;this.write = write;}public void run(){try {write.write(pripeWriter);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}package ThreadStreamChar;import java.io.IOException;import java.io.PipedOutputStream;import java.io.PipedWriter;public class ServiceWiter {private PipedWriter pipeWriter;public ServiceWiter(PipedWriter pipeWriter) {this.pipeWriter = pipeWriter;}public void write(PipedWriter pipeWriter) throws IOException {String str = "hello world haha";for(int i=0;i<100;i++){pipeWriter.write((str+i));}pipeWriter.close();}}package ThreadStreamChar;import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedReader;public class ServiceReader {private PipedReader pripeReader;public ServiceReader(PipedReader pripeReader){this.pripeReader = pripeReader;}public void read(PipedReader pripeReader) throws IOException{//byte b[] = new byte[1024];char cha[] = new char[1024];int length = pripeReader.read(cha);while(-1 != length){String str = new String(cha,0,length);System.out.print(str);length = pripeReader.read(cha);}pripeReader.close();}}package ThreadStreamChar;import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedOutputStream;import java.io.PipedReader;import java.io.PipedWriter;import PAndCMany.P;public class TestMain {public static void main(String[] args) throws IOException, InterruptedException {//PipedInputStream pipeInput = new PipedInputStream();////PipedOutputStream pipeOutput = new PipedOutputStream();PipedReader pripeReader = new PipedReader();PipedWriter pripeWriter = new PipedWriter();pripeReader.connect(pripeWriter);ServiceReader read = new ServiceReader(pripeReader);ServiceWiter wite = new ServiceWiter(pripeWriter);ThreadInputStream threadInput = new ThreadInputStream(pripeReader, read);ThreadOutPutStream threadOutput = new ThreadOutPutStream(pripeWriter, wite);threadOutput.start();Thread.sleep(300);threadInput.start();}}</strong></span>

1 0
原创粉丝点击