<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>
線程利用管道字節(字符)流進行通信
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.