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