자바스트림,Java Stream (PipedInputStream,
PipedOutputStream)이란?
파이프 입출력 스트림은 주로 멀티스레드 처리에 사용을 하는데,
하나의 스레드가 읽어 들인 내용을 다른 스레드에게 전달하고자 할 때 파이프스트림의 기능을 이용하는 것이다.
1. PipedInputStream
PipedInputStream() : 아직 연결되지 않은 PipedInputStream을 생성.<?XML:NAMESPACE
PREFIX = O />
PipedInputStream(PipedOutputStream src) :
PipedOutputStream에 연결하는 PipedInputStream을 생성.
void connect(PipedOutputStream src) :
PipedInputStream과 연결할 PipedOutputStream src를
지정
기본생성자를 이용해서 PipedInputStream을 생성한다면
반드시 이 함수를 사용해서 PipedOutputStream과 연결을 맺게 해야 한다.
2. PipedOutputStream
PipedOutputStream() : 아직 연결되지 않은 PipedOutputStream을 생성.
PipedOutputStream(PipedInputStream src) :
PipedInputStream에 연결하는 PipedOutputStream을
생성합니다.
void connect(PipedInputStream snk) :
PipedOutputStream과 연결할 PipedInputStream을 지정.
기본생성자를 이용해서 PipedOutputStream을 생성한다면
반드시 이 함수를 사용해서 PipedInputStream과 연결을 맺게 해야한다.
아래 예제는 키보드 입력을 pipe로 연결해서 콘솔화면에 출력하는
예제이다.
package onj;
import
java.io.IOException;
import
java.io.InputStream;
import
java.io.OutputStream;
import
java.io.PipedInputStream;
import
java.io.PipedOutputStream;
public
class
PipedInputOutputTest extends Thread {
InputStream input;
OutputStream output;
PipedInputOutputTest(InputStream input,OutputStream output)
{
this.input =
input;
this.output =
output;
}
public
void
run() {
byte[]
buf = new
byte[1024];
int
i=0;
try{
while(true)
{
i = input.read(buf);
if (i
!= -1) {
output.write(buf, 0, i);
}
else
{
return;
}
}
}
catch(Exception e) {
e.printStackTrace();
}
}
public
static
void
main(String[] args) throws
IOException {
//아래
처럼
기본생성자를
이용하여
pos을
만들면 connect메소드로
연결해야
한다.
// PipedInputStream pis = new
PipedInputStream();
// PipedOutputStream pos = new
PipedOutputStream();
//
// pis.connect(pos);
PipedInputStream pis = new
PipedInputStream();
PipedOutputStream pos = new
PipedOutputStream(pis);
PipedInputOutputTest p1 = new
PipedInputOutputTest(System.in,
pos);
PipedInputOutputTest p2 = new
PipedInputOutputTest(pis, System.out);
p1.start();
p2.start();
}
}
오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[12/09][기업100%환급]Spring Framework,MyBatis,Hibernate실무프로젝트과 정
[12/16][기업100%환급]PL/SQL,ORACLE HINT,TUNING
[12/16]웹퍼블리싱 마스터
[12/16]안드로이드개발자과정
[12/16]iPhone 하이브리드 앱 개발 실무과정
[12/23][기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
[01/06][기업100%환급]SQL기초에서 Schema Object까지
[평일야간]
[12/09]C#,ASP.NET마스터
[12/09]JAVA&WEB프레임워크실무과정
[12/10]Spring3.X, MyBatis, Hibernate실무과정
[12/10]SQL초보에서실전전문가까지
[12/16]자바초보에서안드로이드까지
[12/17]웹퍼블리싱 마스터
[12/23]iPhone하이브리드앱개발실무과정
[주말]
[12/14]Spring3.X,MyBatis,Hibernate실무과정
[12/14]SQL초보에서전문가까지
[12/14]웹퍼블리싱 마스터
[12/21]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
[12/21]자바초보에서안드로이드까지
[12/28]C#,ASP.NET마스터
댓글 없음:
댓글 쓰기