뭐요

입출력 스트림 간단하게 알아보기 본문

Java

입출력 스트림 간단하게 알아보기

욕심만 많은 사람 2023. 7. 16. 01:57

Stream

실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름
  • 자바에서는 파일, 시스템 입출력을 직접 다루지 않고 스트림이라는 흐름을 통해 다룹니다.
  • 따라서 프로그램과 외부 시스템 사이의 중간 매개자라고 할 수 있습니다.
  • 한 방향으로만 통신이 가능합니다. 따라서 입력 스트림과 출력 스트림으로 나눌 수 있습니다.
  • java.io 패키지에서 입력 스트림과 출력 스트림 클래스를 별도로 제공합니다.

출처 : https://hudi.blog/java-inputstream-outputstream/


자바의 Stream

java.io 패키지에서 다양한 출력 스트림을 제공합니다.

크게 바이트 단위의 입출력 스트림문자 단위의 입출력 스트림으로 나눌 수 있습니다.

바이트 단위

문자, 그림, 영상 등 다양한 형태의 데이터를 주고 받습니다. 특징으로는 자바에서 소켓을 사용할 때 바이트 단위로 데이터를 주고 받습니다.

InputStream
  • 외부에서 데이터를 읽는 역할을 수행
  • 바이트 기반 입력 스트림의 최상위 추상 클래스
  • Example
    • 파일 데이터 읽기
    • 네트워크 소켓을 통해 데이터를 읽기
    • 키보드에서 입력한 데이터를 읽기

OutputStream
  • 외부로 데이터를 출력하는 역할
  • 바이트 기반 출력 스트림의 최상위 추상 클래스

문자 단위

오직 문자만 주고 받을 수 있습니다.

Reader
  • 문자 기반 입력 스트림의 최상위 추상 클래스
  • Example
    • BufferedReader

Writer
  • 문자 기반 출력 스트림의 최상위 추상 클래스


Reference.

https://docs.oracle.com/javase/8/docs/api/

http://www.tcpschool.com/java/java_io_stream

https://hudi.blog/java-inputstream-outputstream/

https://lannstark.tistory.com/34

'Java' 카테고리의 다른 글

[Java] String class의 isEmpty(), isBlank()  (0) 2023.07.16
정적 팩토리 메소드  (0) 2023.07.16
JAVA stream API 예제로 이해하기  (2) 2023.07.11
Java - Exception 개념과 종류  (0) 2023.04.08
[Design Pattern] 프록시 패턴  (0) 2023.03.17