본문 바로가기

Java

[Java] 스트림(stream)이란 무엇인가?

반응형

입출력에서 스트림(stream)

1. 고객이 서버로 데이터를 전달하려면 두 대상을 연결하고 데이터를 전송할 수 있는 무언가 필요하다. 이것이 스트림(stream)이다. 

 

2. 스트림이란 데이터를 운반하는 데 사용되는 연결통로라 할 수 있다. 

 

3. stream은 영어로 개울, 시내라는 뜻을 가지고 있는데 물이 흐르는 것과 비슷한 개념이다. 

 

4. 물은 높은 곳에서 낮은 곳으로, 즉 한방향으로 흐른다. Java에서 stream은 이와 유사한 점이 많다. 

 

5. 스트림은 단방향 통신만 가능해서 입력과 출력을 동시에 수행하려면 2개의 스트림 (Input stream, Output stream)가 모두 필요하다. 

 

stream 예제 

package Stream;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Arrays;

public class Stream1 {
	public static void main(String[] args) {
		byte[] inSrc = {0,1,2,3,4,5,6,7,8,9};	//10바이트 배열
		byte[] outSrc = null;
		
		ByteArrayInputStream input = null;
		ByteArrayOutputStream output = null;
		
		input = new ByteArrayInputStream(inSrc);
		output = new ByteArrayOutputStream();
		
		int data = 0;
		
		while((data = input.read())!=-1) output.write(data);
		
		outSrc = output.toByteArray();	//스트림 내용을 byte 배열로 반환 
		System.out.println("Input Source :" + Arrays.toString(inSrc)); 
		System.out.println("Output Source :" + Arrays.toString(outSrc)); 
	}
}

 

반응형