PipedBytes.java
资源名称:Source.rar [点击查看]
上传用户:songled
上传日期:2022-07-14
资源大小:94k
文件大小:2k
源码类别:
进程与线程
开发平台:
Java
- import java.io.*;
- public class PipedBytes extends Object {
- public static void writeStuff(OutputStream rawOut) {
- try {
- DataOutputStream out = new DataOutputStream(
- new BufferedOutputStream(rawOut));
- int[] data = { 82, 105, 99, 104, 97, 114, 100, 32,
- 72, 121, 100, 101 };
- for ( int i = 0; i < data.length; i++ ) {
- out.writeInt(data[i]);
- }
- out.flush();
- out.close();
- } catch ( IOException x ) {
- x.printStackTrace();
- }
- }
- public static void readStuff(InputStream rawIn) {
- try {
- DataInputStream in = new DataInputStream(
- new BufferedInputStream(rawIn));
- boolean eof = false;
- while ( !eof ) {
- try {
- int i = in.readInt();
- System.out.println("just read: " + i);
- } catch ( EOFException eofx ) {
- eof = true;
- }
- }
- System.out.println("Read all data from the pipe");
- } catch ( IOException x ) {
- x.printStackTrace();
- }
- }
- public static void main(String[] args) {
- try {
- final PipedOutputStream out =
- new PipedOutputStream();
- final PipedInputStream in =
- new PipedInputStream(out);
- Runnable runA = new Runnable() {
- public void run() {
- writeStuff(out);
- }
- };
- Thread threadA = new Thread(runA, "threadA");
- threadA.start();
- Runnable runB = new Runnable() {
- public void run() {
- readStuff(in);
- }
- };
- Thread threadB = new Thread(runB, "threadB");
- threadB.start();
- } catch ( IOException x ) {
- x.printStackTrace();
- }
- }
- }