★ 입출력 개요
① 자바의 입출력은 모든 하드웨어에 독립적으로 설계
② 자바는 입출력을 스트림(stream)으로 처리
스트림 : 순서가 있고 길이가 정해져 있지 않은 일련의 데이터 흐름을 의미하는 추상적인 개념
③ 사용자는 스트림을 이용하여 입출력 수행
스트림을 이용하여 실제 다양한 하드웨어와 입출력을 수행하는 일은 JVM에 의해 실행
④ 스트림의 개념을 이용하면 데이터의 근원지나 목적지에 상관없이 항상 일관된 방법으로 프로그램을 작성할 수 있다.
⑤ 자바는 입출력을 위한 클래스들을 java.io 패키지로 제공(API 참조)
⑥ 단방향으로 작동
입력 스트림 : 데이터를 스트림으로 읽어 들임
출력 스트림 : 출력 스트림으로 데이터를 보냄
★ 전달 데이터 형에 따른 분류
① 바이트 스트림
바이트, 바이트 배열, Primitive형 데이터, 개체형 데이터 등의 흐름
1byte씩 처리
1byte씩 처리하므로, 영어권이 아닌 2bytes 문자인 한글, 한자, 일본어 등은 깨진다.
ex) InputStream, OutputStream
② 문자 스트림
문자, 문자 배열, 문자열의 흐름
2byte씩 처리
ex) Reader, Writer
★ 버퍼 - BufferedReader, BufferedWriter 등 Buffered가 붙은 녀석들.
데이터를 하나씩 받아서 하나씩 처리하는게 아니라, 데이터를 계속 받아서 모은 후에 한꺼번에 처리한다.
★ 데이터 처리 여부에 따른 분류
① Sink 스트림
단순히 데이터를 근원지에서 읽어오거나 목적지에 기록
② Procession 스트림
다른 입출력 클래스를 통해 얻어진 데이터를 중간에서 조작하거나,처리하는 프로세싱 스트림(필터 스트림)
'프로그래밍 > Java' 카테고리의 다른 글
03 임시파일 (0) | 2007.11.27 |
---|---|
02 파일 클래스 (0) | 2007.11.27 |
[펌] jar 파일 만들기 (0) | 2007.11.27 |
[펌] java.lang.OutOfMemoryError (0) | 2007.11.27 |
[펌] java.lang.OutOfMemoryError: PermGen space (0) | 2007.11.27 |