高手救急啊,谢谢!!

cpbuaa 2005-12-02 08:24:35
求以下程序,跪谢!!
构造两个线程,通过管道将一个进程读入的文件从另外一个进程中输出到另外一个文件
...全文
77 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cpbuaa 2005-12-02
  • 打赏
  • 举报
回复
十分感谢,学习中~~
believefym 2005-12-02
  • 打赏
  • 举报
回复
from thinking in java:

//: c13:PipedIO.java
//Using pipes for inter-thread I/O
import java.io.*;
import java.util.*;

class Sender extends Thread {
private Random rand = new Random();

private PipedWriter out = new PipedWriter();

public PipedWriter getPipedWriter() {
return out;
}

public void run() {
//BufferedReader br = null;
try{
DataInputStream fis = new DataInputStream(new FileInputStream(".\\bruceeckel.RestaurantOutput.txt"));
//FileInputStream fis = new FileInputStream(new File(".\\bruceeckel.RestaurantOutput.txt"));
//br = new BufferedReader(new FileReader(".\\bruceeckel.RestaurantOutput.txt"));

//while (true) {
//for (char c = 'A'; c <= 'z'; c++) {
byte c;
while((c = fis.readByte())!=-1){
try {
out.write(c);
sleep(1000);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
fis.close();
//br.reset();
//}
//}
}catch(IOException e){
e.printStackTrace();
}

}
}

class Receiver extends Thread {
private PipedReader in;

public Receiver(Sender sender) throws IOException {
in = new PipedReader(sender.getPipedWriter());
}

public void run() {
//BufferedWriter bw=null;
try {
DataOutputStream fos = new DataOutputStream(new FileOutputStream(".\\piple.out"));
int c;
while((c=in.read())!=-1){
//while (true) {
// Blocks until characters are there:
System.out.println("Read: " + c);
//fos = new BufferedWriter(new FileWriter(".\\piple.out"));
fos.write(c);
}
fos.close();
//}
} catch (IOException e) {
}
}
}

public class PipedIO {
public static void main(String[] args) throws Exception {


StringReader sr = new StringReader("我们");
FileOutputStream fos = new FileOutputStream(new File(".\\我们.txt"));
int a;
while((a=sr.read())!=-1)
fos.write(a);
fos.close();
Sender sender = new Sender();
//sender.join();
Receiver receiver = new Receiver(sender);
//receiver.join();
sender.start();
receiver.start();
//new Timeout(5000, "Terminated");
}
} // /:~

class Timeout extends Timer {
public Timeout(int delay, final String msg) {
super(true); // Daemon thread
schedule(new TimerTask() {
public void run() {
System.out.println(msg);
System.exit(0);
}
}, delay);
}

} // /:~

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧