요약
- 자바에서 입출력을 하려면 Stream을 만들어야하고 이때 byte로 데이터를 주고받는다.
- buffer를 쓰면 I/O가 효율적인데 이를 위한 class가 있다.
- 문자를 주고 받을때 byte로 변환해서 주고 받기 귀찮은데 이를 위한 Writer, Reader 클래스가 있다.
- 그 외 다양한 Stream 클래스가 있다.
스트림
자바가 가진 데이터를 hello.dat 라는 파일에 저장하려면
- 자바 프로세스가 가지고 있는 데이터를 밖으로 내보내려면 출력 스트림을 이용
- 외부 데이터를 자바 프로세스 안으로 가져오려면 입력 스트림을 이용
스트림을 쓰면 외부 자원이므로 꼭 닫아줘야한다. 자바 내부 객체는 자동으로 GC가 되지만 외부 자원은 그렇지 못하기 때문이다.
InputStream, OutputStream
현대 컴퓨터는 대부분 byte 단위로 데이터를 주고 받는다.
이렇게 데이터를 주고 받는 것을 I/O라고 한다.
I/O의 대상은 파일, 네트워크, 콘솔 등이 있을 수 있는데 각각 데이터를 주고 받는 방식이 다르면 불편함
→ InputStream, OutputStream으로 추상화하였고, 구현체도 다 제공한다.
