입출력은 네트워크 프로그래밍에서 큰 비중을 차지한다.
파일에서 데이터를 읽고 쓰는 코드와
네트워크에서 데이터를 읽고 쓰는 코드가 거의 같다.
JAVA의 입출력 클래스들에 다형성이 잘 구현되었기 떄문이다.
컴퓨터가 다루는 데이터의 기본 단위는 이진수 byte 숫자이다.
문자들도 이진수 byte 숫자형태로 저장된다
이진수 숫자와 문자의 연결을 결정하는 것이 문자 인코딩 규칙이다.
대표적으로 UTF-8, EUC-KR, ASCII가 있다.
UTF와 EUC-KR과 달리 ASCII는 8비트이다(다른거는 16비트)
ASCII는 영어 알파벳만 정의한다.
ASCII는 영어 알파벳과 숫자, 키보드 자판에 나오는 기호 문자들 각각에 해당하는 숫자를 결정한다.