ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java - Input과 Output(I/O)
    Java/java study 2022. 3. 27. 23:13
    728x90
    반응형

     

     

    Input과 Output

     

    • 스트림(Stream) / 버퍼(Buffer) / 채널(Channel) 기반의 I/O
    • InputStream과 OutputStream
    • Byte와 Character 스트림
    • 표준 스트림(System.in, System.out, System.err)
    • 파일 읽고 쓰기

     

     


     

    I/O(Input/Output)

     

    I/O 란?

     

     I/O란 Input과 Output의 약자로 입력과 출력, 간단히 입출력이라 한다. I/O를 이용하여 시스템은 컴퓨터 내부 또는 외부 장치와 프로그램간의 데이터를 주고 받는 것을 말한다.

     


     

    스트림(stream)

     

    • 스트림이란 데이터를 운반하는데 사용되는 연결 통로이다.
    • 자바에서 데이터를 전달하고자 할 때, 두 대상을 연결하고 데이터를 전송할 수 있는
      통로가 필요한데 이것을 스트림(stream)이라 한다.
    • 람다와 스트림에서 얘기하는 스트림과 같은 용어를 사용하지만, 다른 개념이다.
    • 스트림은 단방향통신만 가능하다.
    • 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없다.
      (입력을 위한 입력 스트림, 출력을 위한 출력 스트림 2개가 필요)
    • Queue와 같은 FIFO 구조로 되어있다.

     

    버퍼(Buffer)

     

    • 데이터를 임시 저장하는 공간을 의미
    • 바이트 배열을 사용하여 일정량의 데이터 크기만큼 모아서 전송
    • 시스템 콜의 횟수가 줄어들어 성능상 이점이 있다.

     

    채널(Channel)

     

    • 채널은 스트림과 달리 양방향으로 입력과 출력이 가능하다.
    • 비동기적으로 입출력이 가능

     

    InputStream과 OutputStream

     

    • 바이트 기반 스트림의 최상위 클래스인 추상 클래스
    • 모든 byteStrean의 조상

    표준 입출력

     

    • System.in : 표준 입력 스트림, InputStream
    • System.out : 표준 출력 스트림, PrintStream
    • System.err : 표준 오류 스트림, PrintStream

     

     

    참고 사이트

     

    I/O (notion.so)

     

    I/O

    WhiteShip Java Study 시즌 1

    www.notion.so

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    728x90
    반응형

    'Java > java study' 카테고리의 다른 글

    Java - 람다식  (0) 2022.04.10
    Java - 제네릭(Generics)  (0) 2022.04.03
    Java - 애노테이션(annotation)  (0) 2022.03.06
    Java - enum이란  (0) 2022.02.27
    Java - Thread  (0) 2022.02.20

    댓글

Designed by Tistory.