자바 - 입출력과 스트림

pa324·2019년 12월 13일
0

프로그램에서 I/O는 가장 기본적인 기능이지만, 외부 저장 장치나 네트워크와 연동해야 하기 때문에 장치에 따라 구현방식이 다르다. 따라서, 자바에서 제공하는 입출력과 스트림에 대해서 정리하였다.

스트림

  • 스트림이란 프로그램과 I/O객체를 연결하여 데이터를 송수신 하는 길
  • 자바에서 모든 입출력은 스트림을 통해 이루어진다.
  • I/O장비는 매우 다양한데 장치에 따라 입출력 부분을 일일이 다르게 구현하면 호환성 떨어진다.
  • 자바는 I/O장비와 무관하고 일관성 있게 프로그램을 구현할 수 있도록 가상 통로인 스트림을 제공
  • 자료를 읽어 들이는 소스와 자료를 쓰는 대상에 따라 각각 다른 스트림 클래스를 제공

입력 스트림과 출력 스트림

  • 동영상 재생을 위해 동영상 파일에서 자료를 읽는것은 입력 스트림
  • 편집기에서 사용자가 쓴 글을 파일에 저장할 때는 출력 스트림
  • 스트림은 단방향으로 자료가 이동하기 때문에 입력과 출력을 동시에 할 수 없다.
  • 따라서 어떤 스트림이 있다고 하면, 그 스트림은 입력 스트림이거나 출력 스트림이다.

InputStream

  • int read() : 해당 입력 스트림으로 부터 다음 바이트를 읽어들임
  • int reat

OutputStream

바이트 단위 스트림과 문자 단위 스트림

  • 자바의 스트림은 바이트 단위로 자료의 입출력이 이루어진다.
  • 바이트 스트림
    • binary 데이터를 입출력하는 스트림
      • 이미지, 동영상 등을 송수신 할 때 주로 사용
  • 문자 스트림
    • 말 그대로 text 데이터를 입출력하는데 사용하는 스트림
      • HTML 문서, 텍스트 파일을 송수신할 때 주로 사용

기반 스트림과 보조 스트림

  • 어떤 스트림이 자료를 직접 읽거나 쓰는 기능을 제공 (기반 스트림)
  • 자료를 직접 읽거나 쓰는 기능은 없이 다른 스트림에 부가기능을 제공 (보조 스트림)
profile
안녕하세요

0개의 댓글