입출력 스트림
특징
- 스트림의 양끝에 입출력 장치와 자바 으용프로그램 연결
- 스트림은 단방향
-입력과 출력을 동시에 하는 스트림 없음
- 입출력 스트림 기본단위
-바이트스트림의 경우:바이트
- 입출력되는 데이터를 단순 바이트로 처리(바이너리 파일을 읽는 입력 스트림)
에)

-문자스트림의 경우:문자
- 문자만 입력하는 스트림
- 문자가 아닌 바이너리 데이터는 스트림에서 처리하지 못함(텍스트 파일을 읽는 입력 스트림)
-선입 선출 구조

스트림의 작동 구조
예)

블록(read())
- 파일이 큰 경우 한 번에 한 문자씩 읽으면 읽는 속도가 너무 느리기 떄문에, 다음과 같이 한 번에 한 블록(버퍼크기)만큼 읽는 read()를 이용하면 된다.
예)
char[]buf=new char[1024];
int n=fin.read(buf);//한번에 1024개 문자를 읽어 buf[]에 저장,실제 읽은 문자수 리턴
버퍼 스트림
- 버퍼를 가진 스트림이다.
- 입출력 데이터를 일시적으로 저장하는 버퍼를 이용하여 입출력 효율 개선
목적
- 입출력 시 운영체제의 API 호출 횟수를 줄여 이출력 성능 개선
- 출력시 여러 번 출력되는 데이터를 버퍼에 모아두고 한 번에 장치로 출력
바이트 버퍼 스트림
- 바이트 단위의 바이너리 데이터를 처리하는 버퍼 스트림
- BufferedinputStream와 BufferedOutputStream 이 있다
문자 버퍼 스트림
- 유니코드의 문자 데이터만 처리하는 버퍼 스트림
- BufferedReader와 BufferedWriter 이 있다
File 클래스
- 파일의 경로명을 다루는 클래스
- java.io.File
- 파일과 디렉터리 경로명의 추상적 표현
- 파일 관리 기능
- 파일 이름 변경,삭제,디렉터리 생성, 크기 등 파일 관리
- File 객체는 파일 읽고 쓰기 기능 없음.
에)
