关于PipedOutputStream的测试小程序import java.io.*;
public class PipedStream {
public static void main(String [] args){
try{
Thread sender = new Sender();
Thread receiver = new Receiver();
PipedOutputStream out = sender.getOutputStream(); //这里编译不能通过
PipedInputStream in = receiver.getInputStream(); //这里编译不能通过
in.connect(out);
sender.start();
receiver.start();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
class Sender extends Thread{
private PipedOutputStream po = new PipedOutputStream();
public PipedOutputStream getOutputStream(){
return po;
}
public void run(){
String s = "this is the sender ";
try{
po.write(s.getBytes());
po.close();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
class Receiver extends Thread{
private PipedInputStream pi = new PipedInputStream();
public PipedInputStream getInputStream(){
return pi;
}
public void run(){
String s = null;
byte [] buf = new byte[1024];
try{
int len = pi.read(buf);
s = new String(buf ,0,len);
System.out.println("the information from the sender : " + s);
pi.close();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
[size=11px]报错
run:
Uncompilable source code - 不兼容的类型
找到: java.lang.Thread.getOutputStream
需要: java.io.PipedOutputStream
size]
public class PipedStream {
public static void main(String [] args){
try{
Thread sender = new Sender();
Thread receiver = new Receiver();
PipedOutputStream out = sender.getOutputStream(); //这里编译不能通过
PipedInputStream in = receiver.getInputStream(); //这里编译不能通过
in.connect(out);
sender.start();
receiver.start();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
class Sender extends Thread{
private PipedOutputStream po = new PipedOutputStream();
public PipedOutputStream getOutputStream(){
return po;
}
public void run(){
String s = "this is the sender ";
try{
po.write(s.getBytes());
po.close();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
class Receiver extends Thread{
private PipedInputStream pi = new PipedInputStream();
public PipedInputStream getInputStream(){
return pi;
}
public void run(){
String s = null;
byte [] buf = new byte[1024];
try{
int len = pi.read(buf);
s = new String(buf ,0,len);
System.out.println("the information from the sender : " + s);
pi.close();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
[size=11px]报错
run:
Uncompilable source code - 不兼容的类型
找到: java.lang.Thread.getOutputStream
需要: java.io.PipedOutputStream
size]
try{
Thread sender = new Sender();
Thread receiver = new Receiver();
PipedOutputStream out = sender.getOutputStream(); //这里编译不能通过
PipedInputStream in = receiver.getInputStream(); //这里编译不能通过
in.connect(out);
sender.start();
receiver.start();
}
Thread类又不包含getOutputStream()和getInputStream()方法,当然编译不能通过,改成:try{
Sender sender = new Sender();
Receiver receiver = new Receiver();
PipedOutputStream out = sender.getOutputStream();
PipedInputStream in = receiver.getInputStream();
in.connect(out);
sender.start();
receiver.start();
}