Java/File Input Output/Pipes — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 09:02, 1 июня 2010
Pipes for Communications
<source lang="java">
import java.io.InputStream; import java.io.OutputStream; import java.io.PipedInputStream; import java.io.PipedOutputStream; public class Pipe {
public static void main(String args[]) throws Exception { PipedInputStream in = new PipedInputStream(); PipedOutputStream out = new PipedOutputStream(in); Sender s = new Sender(out); Receiver r = new Receiver(in); Thread t1 = new Thread(s); Thread t2 = new Thread(r); t1.start(); t2.start(); }
} class Sender implements Runnable {
OutputStream out; public Sender(OutputStream out) { this.out = out; } public void run() { byte value; try { for (int i = 0; i < 5; i++) { value = (byte) (Math.random() * 256); System.out.print("About to send " + value + ".. "); out.write(value); System.out.println("..sent.."); Thread.sleep((long) (Math.random() * 1000)); } out.close(); } catch (Exception e) { e.printStackTrace(); } }
} class Receiver implements Runnable {
InputStream in; public Receiver(InputStream in) { this.in = in; } public void run() { int value; try { while ((value = in.read()) != -1) { System.out.println("received " + (byte) value); } System.out.println("Pipe closed"); } catch (Exception e) { e.printStackTrace(); } }
}
</source>