ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바의 I/O
    Java 2020. 3. 13. 20:06
    반응형

    I/O란?

     Intput/Output의 약자로 입력과 출력, 간단히 입출력이라 함

     입출력 : 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것

     예) 키보드로부터 데이터를 입력, System.out.println()을 이용해 화면에 출력

    스트림(stream)

     자바에서 I/O를 수행하려면, 즉 어느 한 쪽에서 다른 한 쪽에 데이터를 전달하려면 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요함, 이것을 스트림(stream)이라 정의(단, 람다의 스트림과는 다른 개념)

     스트림 : 데이터를 운반하는데 사용되는 연결 통로

     연속적인 데이터의 흐름을 물에 비유해서 붙여진 이름으로, 물이 한 쪽 방향으로만 흐르는 것과 같이 스트림은 단방향통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 처리할 수 없음

     입력과 출력을 동시에 수행하려면 입력을 위한 입력스트림(InputStream)과 출력을 위한 출력스트림(OutputStream), 2개가 필요함

     스트림은 먼저 보낸 데이터를 먼저 받게 되어 있으며 중간에 건너뜀 없이 연속적으로 데이터를 주고받음 - 큐(queue)와 같은 FIFO(First In First Out)구조로 되어있다고 생각하면 이해하기 쉬울 것

    바이트기반 스트림 - InputStream, OutputStream

     스트림은 바이트단위로 데이터를 전송, 입출력 대상에 따라 아래와 같은 입출력 스트림이 있음

    FileInputStream       FileOutputStream      파일
    ByteArrayInputStream  ByteArrayOutputStream 메모리(byte배열)
    PipedInputStream      PipedOutputStream     프로세스(프로세스간의 통신)
    AudioInputStream      AudioOutputStream     오디오장치

     

    반응형

    댓글

Designed by Tistory.