🌱 오늘의 주제 : 입출력(I/O) 과 스트림(stream)이란?
🌱 입출력(I/O) 과 스트림(stream)
- 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고 받는 것을 말한다.
- 스트림은 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림이라고 한다. 즉, 데이터를 운반하는데 사용되는 연결통로이다.
- 입출력은 입력스트림과 출력스트림 두개가 필요하다.
🌱 바이트 기반 스트림 - InputStream, OutputStream
- 스트림은 바이트단위로 데이터를 전송하며 입출력 대상에 따라 다르다.
- 입출력의 대상이 달라져도 동일한 방법으로 입출력이 가능하다.
🌱 보조 스트림
- 보조 스트림은 데이터를 입출력할 수 있는 기능은 없지만, 스트림의 기능을 향상시키거나 새로운 기능을 추가할 수 있다.
- 스트림을 먼저 생성한 후, 보조 스트림을 생성해야 한다.
// 먼저 기반 스트림을 생성한다.
FileInputStream fis = new FileInputStream("test.txt");
// 기반 스트림을 이용해서 보조 스트림을 생성한다.
BufferedInputStream bis = new BufferedInputStream(fis);
bis.read(); // 보조 스트림인 BufferedInputStream으로부터 데이터를 읽는다.
🌱 문자기반 스트림 - Reader, Writer
- 문자데이터를 입출력할 때는 문자기반 스트림을 사용하면 된다.
InputStream --> Reader
OutputStream --> Writer
🌱 InputStream과 OutputStream
- InputStream과 OutputStream은 모든 바이트 기반 스트림의 조상이다.
🌱 FileInputStream과 FileOutputStream
- FileInputStream과 FileOutputStream은 파일에 입출력을 하기 위한 스트림이다.
'Java' 카테고리의 다른 글
Java - BufferedReader와 BufferedWriter, InputStreamReader와 OutputStreamWriter, File (0) | 2023.04.11 |
---|---|
Java - FileInputStream과 FileOutputStream, BufferedInputStream과 BufferedOutputStream, 문자 기반 스트림 - Reader , Writer (0) | 2023.04.10 |
Java - 스트림(collect(), 스트림의 그룹화와 분할 (0) | 2023.04.05 |
Java - 스트림의 최종연산 (0) | 2023.04.04 |
Java - Optional<T> (0) | 2023.04.03 |