Java IO,NIO,AIO

Java IO vs Java NIO vs Java AIO

함수 호출 관점

동기비동기
BlockingJava IOX
Non-BlockingJava NIO
(File IO 는 Non Blocking 불가)
Java AIO

함수의 호출로만 봤을 때 Java IO, Java NIO, Java AIO 는 각각 아래와 같습니다.

  • Java IO : 블로킹 방식의 동기 연산입니다.
  • Java NIO : 논블로킹 방식의 동기 연산입니다. 다만, File IO 는 Java NIO 에서도 Non Blocking 이 불가능합니다.
  • Java AIO : 논블로킹 방식의 비동기 연산이 가능합니다.

IO 모델 관점

동기비동기
BlockingJava IOX
Non-BlockingJava NIO, Java AIOX

IO 모델 방식으로 따져봤을 때 Java IO, Java NIO, Java AIO 는 각각 아래와 같습니다.

  • Java IO : 블로킹 기반의 동기 연산입니다.
  • Java NIO : 논블로킹 방식의 동기 연산입니다.
  • JAVA AIO : Java AIO 역시 IO 연산작업에 있어서는 블로킹 방식의 동기연산이 됩니다.

Java IO

Java IO 는 Java 1.0 부터 처음 도입되었습니다. Java IO 는 블로킹 방식의 동기연산을 수행합니다. Java IO는 파일과 네트워크에 데이터를 읽고 쓸 수 있는 InputStream, OutputStream API를 제공합니다.