티스토리 뷰

개념

Pipe는 사전적으로 연결 이라는 의미가 있습니다. 이름에서 알 수 있듯이 파이프와 파이프 사이에 연결을해서 사용하는것이 PipeIOStream의 특징입니다.

connect 메소드를 이용하면 서로다른 stream class 로 데이터 전달을 할 수 있습니다.

 

표준스트림은 노드스트림 이라고도 하며, 데이터와 직접 맞닿는 스트림을 노드스트림 이라고합니다.

Pipe는 노드스트림과 직접 연결해서 사용 할 수 있습니다.

 

 

예제

import java.io.*;

public class Main3 {
    public static void main(String[] args) {
        PipedInputStream pin = new PipedInputStream();
        PipedOutputStream po = new PipedOutputStream();

        PipedInputOutputExample t1 = new PipedInputOutputExample(System.in, po);
        PipedInputOutputExample t2 = new PipedInputOutputExample(pin, System.out);

        try{
            pin.connect(po);
        }catch(Exception e){

        }
        t1.start();
        t2.start();

    }

    static class PipedInputOutputExample extends Thread{
        InputStream input;
        OutputStream output;
        PipedInputOutputExample(InputStream is, OutputStream pos) {
            this.input = is;
            this.output = pos;
        }

        public void run(){

            byte[] buf = new byte[1024];
            int n = 0;
            try {
                while(true){
                    if((n = input.read(buf)) > -1){
                        output.write(buf, 0, n);
                    } else {
                        return;
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

 

결과

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함