import java.io.*;public class pipedIo
{
public static void main(String [] args) throws Exception
{
try
{
//构造读写的管道流对象
PipedInputStream pis=new PipedInputStream();
PipedOutputStream pos=new PipedOutputStream();
//实现关联
pos.connect(pis);
//构造两个线程,并启动
new Sender(pos,"d:\\HelloWorld\\test1.txt").start();
new Receiver(pis,"d:\\HelloWorld\\test2.txt").start();
// new Sender().start();
// new Receiver().start();
}catch(Exception e)
{
System.out.println("Pipe Error"+e);
}
//线程发送
class Sender extends Thread
{
PipedOutputStream pos;
File file;
//构造方法
Sender(PipedOutputStream pos,String fileName)
{
this.pos=pos;
file=new File(fileName);
}
//线程运行方法
public void run()
{
try
{
//读取文件内容
FileInputStream fs=new FileInputStream(file);
int data;
while((data=fs.read())!=-1)
{
//写入管道始端
pos.write(data);
}
pos.close();
}catch(Exception e)
{
System.out.println("Sender Error"+e);
}
}
}
//线程读
class Receiver extends Thread
{
PipedInputStream pis;
File file;
//构造方法
Receiver(PipedInputStream pis,String fileName)
{
this.pis=pis;
file=new File(fileName);
}
public void run()
{
try
{
//写入文件内容
FileOutputStream fs=new FileOutputStream(file);
int data;
while((data=pis.read())!=-1)
{
//读取管道始端
fs.write(data);
}
pis.close();
}catch(Exception e)
{
System.out.println("Receiver Error"+e);
}
}
}
}
}
import java.io.*;public class PipedIo
{
//构造读写的管道流对象
public static PipedInputStream pis=new PipedInputStream();
public static PipedOutputStream pos=new PipedOutputStream();
public static void main(String [] args) throws Exception
{
try
{
//实现关联
pos.connect(pis);
//构造两个线程,并启动
PipedIo pi = new PipedIo();
Thread t1 = new Thread(pi.new Sender(pos,"d:\\HelloWorld\\test1.txt"));
Thread t2 = new Thread(pi.new Receiver(pis,"d:\\HelloWorld\\test2.txt"));
t1.start();
t2.start();
}catch(Exception e)
{
System.out.println("Pipe Error"+e);
}
}
//线程发送
class Sender implements Runnable
{
PipedOutputStream pos;
File file;
//构造方法
Sender(PipedOutputStream pos,String fileName)
{
this.pos=pos;
file=new File(fileName);
}
//线程运行方法
public void run()
{
try
{
//读取文件内容
FileInputStream fs=new FileInputStream(file);
int data;
while((data=fs.read())!=-1)
{
//写入管道始端
pos.write(data);
}
pos.close();
}catch(Exception e)
{
System.out.println("Sender Error"+e);
}
}
}
//线程读
class Receiver implements Runnable
{
PipedInputStream pis;
File file;
//构造方法
Receiver(PipedInputStream pis,String fileName)
{
this.pis=pis;
file=new File(fileName);
}
public void run()
{
try
{
//写入文件内容
FileOutputStream fs=new FileOutputStream(file);
int data;
while((data=pis.read())!=-1)
{
//读取管道始端
fs.write(data);
}
pis.close();
}catch(Exception e)
{
System.out.println("Receiver Error"+e);
}
}
}
}