입출력 스트림(I/O Stream)
: 네트워크에서 자료의 흐름
자바는 다양한 입출력 장치에 독립적으로 일관성 있는 입출력을 스트림을 통해 제공
입출력이 구현 되는 곳 : 디스크, 키보드, 마우스, 네트워크, 메모리 등 모든 자료가 입력되고 출력되는 곳
추상적인 공간
(추상적인 경로)
Java Application >>>>>경로(출력)>>>>>>>> Input source or Output destination
<<<<<경로(입력)<<<<<<<<<
( > 하나가 Byte data)
입출력 스트림의 구분
: 입력 스트림과 출력 스트림 별도로 존재(입력되는 스트림 따로 출력 스트림 따로/ 하나가 둘 다 사용되지 않음)
자료의 종류는 바이트 스트림 / 문자스트림이 존재 - 바이트 단위로 핸들링하느냐 문자로 하느냐에 따라 인코딩하는 방식이 다름
다른 스트림을 감싸 사용하는 보조 스트림과 대상에 대하여 직접 IO를 하는 기능을 하는 기반 스트림이 존재하여 기능으로 구분
=> 입력 스트림, 출력 스트림, 바이트 스트림, 문자 스트림, 기반 스트림, 보조 스트림
스트림의 종류
입력 스트림 : FileInputStream, FileReader, BufferedInputStream, BufferedReader 등
출력 스트림 : FileOutputStream, FileWriter, BufferedOutputStream, BufferedWriter 등
바이트 단위 스트림 [] [] [] [] [] [] 동영상, 음악파일, 실행파일 등의 자료를 읽고 쓸 때 사용
FileInputStream, FileOutputStream, BufferedInputStream, BufferedOutputStream
문자 단위 스트림 [][] [][] [][] [][] 바이트 단위로 자료를 처리하면 문자는 깨지므로 인코딩에 맞게 2바이트 이상으로 처리
FileReader, FileWriter, BufferedReader, BufferedWriter
기반 스트림 : 대상에 직접 자료를 읽고 쓰는 기능
FileInputStream, FileOutputSTream, FileReader, FileWriter
보조 스트림 : 직접 읽고 쓰는 기능은 없이 추가적인 기능을 더해주는 스트림 (항상 기반 스트림이나 또 다른 보조 스트림을 생성자의 매개 변수로 포함함 ex) 기반 스트림 + 보조 스트림 1 + 보조 스트림 2
InputStreamReader, OutputSTreamWriter, BufferedInputStream, BufferedOutputStream
'OOP > Java' 카테고리의 다른 글
바이트 단위 입출력 스트림 (0) | 2022.05.22 |
---|---|
표준 입출력 스트림 (0) | 2022.05.22 |
java.util.logging.Logger 활용 (0) | 2022.05.18 |
사용자 정의 예외 클래스 (0) | 2022.05.18 |
예외처리 (Exception)는 왜 하는가? (0) | 2022.05.11 |