IO란?
java ·IO는 input output의 약자로 jvm 기준 텍스트나 파일을 읽어오면 input, 텍스트를 쓰거나 파일을 저장하면 output이다.
IO 스트림은 입출력을 하기 위한 기능으로 단방향 통신만 가능하다.
스트림은 바이트 기반 스트림과 문자열 기반 스트림으로 나눠진다.
바이트 기반은 inputStream, outputStream 추상 클래스를 상속한다.
문자열 기반은 Reader와 Writer 추상 클래스 상속한다.
스트림은 1바이트씩 읽고 쓰기 때문에 buffered 스트림을 사용해 byte를 모아서 한번에 읽거나 저장하는게 국룰이다.
추가
스트림은 데코레이터 패턴을 통해 확장가능함
데코레이터 패턴이란 서브클래싱 없이 기능을 확장할 수 있는 디자인 패턴이다