프로그래밍 언어/자바(JAVA)

자바(JAVA) - 입출력 스트림

나아가는중 2021. 12. 19. 22:06
반응형

자바(JAVA) - 입출력 스트림


입출력 스트림이란?

스트림(Stream)을 한글로 번역하면 개울, 시내, 줄기, 줄줄 흐르다로 번역됩니다.

입출력 스트림에서 스트림은 순서가 있는 데이터의 연속적인 흐름이라 할 수 있습니다. 

 

입출력 스트림은 입출력 장치와 자바 응용 프로그램을 연결하는 역할입니다.

기본 단위는 바이트 이며, 단방향 스트림선입선출의 구조를 가집니다.

 

입력 스트림 : 입력 장치(키보드 등)으로 부터 받은 입력 값을 자바 응용 프로그램으로 전달하는 객체입니다. 자바 응용 프로그램은 입력 장치로부터 직접 데이터를 읽지 않고 입력 스트림을 통해 데이터를 읽습니다.

출력 스트림 : 자바 응용프로그램으로 부터 출력 장치(화면 등)으로 데이터를 보내는 객체입니다. 입력 스트림과 마찬가지로 직접 데이터를 전달하지 않고 출력 스트림을 통해 데이터를 보냅니다.

 

입출력 스트림 종류

문자 스트림

문자 스트림에는 크게 입력 문자 스트림(...Reader)출력 문자 스트림(...Writer)이 존재합니다.

입력 문자 스트림의 종류에는  Buffer, CharArray, Filter, InputStream, Piped가 있으며, 출력 문자 스트림에는 Buffer, CharArray, Filter, OutputStream, Piped, Print, String이 있습니다.

입력 문자 스트림의 경우 끝에 Reader가 붙으며 출력 문자 스트림의 경우 Writer가 붙습니다.

예) InputStreamReader, OuputStreamReader

 

문자 스트림은 문자(text)만 입출력하는 스트림으로 다른 데이터는 처리하지 못합니다.

바이너리로 들어온 문자 데이터가 문자 스트림을 거치면 문자로 변환됩니다.

 

바이트 스트림

바이트 스트림에는 크게 입력 바이트 스트림(...InputStream)출력 바이트 스트림(...OutputStream)이 존재합니다.

데이터의 종류에 따라 입력 바이트 스트림에는 Audio, ByteArray, File, Filter, Object, Piped, Sequence, StringBuffer가 있으며, 출력 바이트 스트림에는 ByteArray, File, Filter, Object, Piped가 있습니다.

입력 바이트 스트림의 경우 끝에 InputStream이 붙으며 바이트 스트림의 경우 OutputStream이 붙습니다.

예) FileInputStream, FileOutputStream

 

바이트 스트림은 문자 데이터, 바이너리 데이터 상관없이 데이터를 바이너리 2진 데이터 그대로 읽고 저장 합니다.

바이트 입력 스트림의 경우 바이트 입력 스트림을 거쳐도 바이트 상태로 입출력 데이터를 단순 바이트의 흐름으로 처리합니다.

반응형