2.1 InputStream 과 OutputStream

InputStream 과 OutputStream 은 모든 바이트기반의 스트림의 조상인 추상클래스이다. 입출력하려는 타입에 맞게 구현된 객체를 사용한다.

프로그램이 종료될 때 사용하고 닫지 않은 스트림을 JVM 이 자동적으로 닫아주기는 하지만 스트림을 사용해서 모든 작업을 마치고 난 후에는 close() 를 호출해서 반드시 닫아주어야 한다. 그러나 ByteArrayInputStream 과 같이 메모리를 사용하는 스트림과 System.in, System.out 과 같은 표준 입출력 스트림은 닫아주지 않아도 된다.

2.2 ByteArrayInputStream 과 ByteArrayOutputStream

메모리, 즉 바이트배열에 데이터를 입출력 하는데 사용되는 스트림이다. 주로 다른 곳에 입출력하기 전에 데이터를 임시로 바이트배열에 담아서 변환 등의 작업을 하는데 사용된다.