Stream
- 프로그램을 작성하다 보면 프로그램 내부에서 선언한 변수나 객체에 값을 담아서 사용하는 경우가 종종 있다
- 변수는 변수의 이름을 통해 접근하여 값을 가져오고 집어넣을 수 있다
- 객체는 참조 변수를 이용해 객체에 접근하고 접근이 허용된 메서드나 변수에 자유롭게 접근이 가능하다
- 같은 프로그램이 아닌 다른 프로그램 혹은 다른 곳에 있는 데이터를 가져오는 건 자유롭지 못하다
- 자바에서는 프로그램 내부가 아닌 외부에 존재하는 데이터를 프로그램에서 접근할 수 있도록 Stream이란 도구를 제공한다
입출력 Stream
- Stream이란 바이트 형태로 되어 있는 데이터를 프로그램과 다른 것과의 데이터 교환을 위해 제공되는 도구이다
- 데이터를 받아들이기 위해 사용하는 Stream을 입력 Stream이라고 부른다
- 데이터를 전송하기 위해 사용하는 Stream을 출력 Stream이라고 부른다
- 자바에서는 입력용 스트림으로 InputStream, 출력용 스트림으로 OutputStream을 제공한다
- InputStream과 OutputStream을 데이터를 교환하고자 하는 것에서 추출하여 스트림을 통해 데이터를 주고받으면 된다
출력 Stream -- -> -> 입력 Stream
입력 Stream <- <- -- 출력 Stream
기본 Stream
- 자바에서 제공되는 여러 가지 스트림 클래스 중에서 스트림 클래스 자체가 데이터 입출력의 기능을 갖추고 있는 것을 기본 스트림이라고 부른다
- 기본 Stream은 InputStream과 OutputStream을 사용하면 된다
- 데이터를 교환하고자 하는 대상과 연결되는 InputStream과 OutputStream을 추출할 수 있으면 추출해서 사용하면 된다
- 추출하는 과정 자체가 복잡한 경우 자바에서는 스트림을 사용할 수 있도록 InputStream과 OutputStream을 상속받을 클래스들을 제공한다
- 이러한 기본 스트림들은 데이터를 교환할 때 교환되는 모든 데이터를 바이트 형태로 변환을 해줘야 한다
기본 Stream의 종류
- AudioStream : 사운드 데이터를 송수신하는 목적으로 만들어졌으며 이를 상속받은 클래스는 기본적으로 사운드 데이터를 송수신하는 기능을 갖추게 된다
- ByteArrayStream : 바이트 형태의 데이터를 송수신하는 목적으로 사용하는 스트림이다
- FileStream : 파일을 대상으로 데이터를 송수신 하는 목적으로 사용하는 스트림이다
'자바' 카테고리의 다른 글
데이터 스트림 (0) | 2020.07.13 |
---|---|
File Stream (0) | 2020.07.11 |
HashTable (0) | 2020.07.11 |
Java Vector (0) | 2020.07.08 |
Java Calendar (0) | 2020.07.08 |