TIL 19 | [Java] 자바의 입출력 스트림

Yoonsik·2022년 4월 28일
0

JAVA

목록 보기
1/11
post-thumbnail

💻 자바의 입출력 스트림

스트림 이란 컴퓨터 공학에서 연속적인 데이터의 흐름 혹은 데이터를 전송하는 소프트웨어 모델을 일컫는다.
컴퓨터에서 스트림은 도착한 순서대로 데이터를 흘려보낸다.

자바에서의 입출력 스트림

  • 응용프로그램과 입출력 장치를 연결하는 소프트웨어 모듈이다.

    • 응용프로그램은 입력 스트림과 연결하고, 입력 스트림은 키보드 장키를 제어하며 사용자의 키 입력을 제어하여 사용자의 키 입력을 받아, 응용프로그램에게 전달한다.

    • 또한, 응용프로그램은 출력 스트림과 연결하고, 출력 스트림에 출력하면, 출력 스트림은 다른 끝단에 연결된 출력 장치를 제어하여 출력을 완성한다.

스트림 입출력 방식을 사용하는 이유

스트림 입출력 방식에서, 자바 응용프로그램은 입출력 장치를 직접 제어하는 대신(직접제어 X), 입출력 스트림 객체와 연결하여 쉽게 데이터 입출력을 실행한다.

스트림 사용 X, 자바 응용프로그램이 직접 입출력 장치를 제어하는 경우 -

  • 응용프로그램 작성이 매우 어려워짐.
  • 하드웨어 구조나 제어가 다양한 입출력 장치를 모두 수용할 수 없음

입출력 스트림의 특징

1. 스트림의 양 끝에는 입출력 장치와 자바 응용프로그램이 연결된다.

  • 입력장치 ---------- 입출력 스트림 ---------- 자바 응용프로그램
    자바 응용프로그램은 입력/출력 스트림과만 연결하고, 입출력 스트림이 입출력 장치를 제어하고 실질적인 입출력을 담당한다.

2. 스트림은 단방향이다.

  • 입력과 출력을 동시에하는 스트림은 없다.

3. 자바에서의 입출력 스트림의 종류

  • 자바에서 입출력 스트림은 문자 스트림과 바이트 스트림 2종류로 나뉜다.

    • 문자 스트림 : 문자를 기본 단위로 다룬다.(자바에서는 char타입, 문자 하나의 크기는 2byte)
      문자 스트림은 문자만 다루기 때문에 문자가 아닌 데이터가 출력되면 보이지 않거나 엉뚱한 기호가 출력되고, 문자가 아닌 데이터가 입력되는 경우에는 오류가 발생한다. 즉, 문자가 아닌 데이터는 다루지 못한다.

    • 바이트 스트림 : 바이트를 기본 단위로 다루며, 동영상 파일, 이미지, 실행파일 등을 처리할 때 유용하다.
      스트림에 들어오고 나오는 정보들을 단순 바이너리(비트들)로 다루기 때문에 문자이든 이미지 바이트든 상관없이 흘려보낸다.

4. 스트림은 선입선출, FIFO 구조이다.


profile
꾸준함의 힘

0개의 댓글