您的位置:首页 > 编程语言 > Java开发

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

2016-07-07 15:41 525 查看
<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 block
e.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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线程 Java IO