자바 입출력스트림
바이트 스트림
한 바이트씩 읽고 씀
1) InputStream 입력 스트림
FileInputStream ( 파일에서 1바이트씩 읽는 스트림)
int read() : 파라메터 없는 read
1 byte 읽어서 int 타입으로 반환한다.
int read(byte[]) : int 타입, byte 배열을 파라메터로 받는 메소드
파라메터로 넣은 배열 크기만큼 읽어서 배열에 저장.
읽은 바이트 수를 반환
int read(byte[], offs, size)
size만큼 읽어서 배열에 저장
저장 시작 위치를 offs 로 지정
읽은 바이트 수를 반환
2) OutputStream 출력 스트림
FileOutputStream ( 파일에서 1 바이트씩 출력 스트림)
✎ 1 바이트 : 영어 한 개씩
void write(int ch) :
한 바이트 (ch) 출력
void write(byte[]) :
배열 크기만큼 배열요소들을 출력
출력한 바이트 수 반환
void write(byte[], offs, size) :
byte[] 배열에서 offs 위치부터 size 크기만큼을 출력
출력한 바이트 수 반환
문자 스트림
한 문자씩 (2B) 읽고 씀
1) Reader
FileReader (파일에서 2 바이트씩 읽는 스트림)
int read()
두 바이트 읽어서 int 타입으로 반환한다.
int read(char[]) : int 타입, byte 배열을 파라메터로 받는 메소드
파라메터로 넣은 배열 크기만큼 읽어서 배열에 저장.
읽은 바이트 수를 반환
int read(char[], offs, size)
size만큼 읽어서 배열에 저장
저장 시작 위치를 offs 로 지정
읽은 바이트 수를 반환
2) Writer
FileWriter (파일에서 2바이트씩 출력 스트림)
void write(int ch) :
문자 한 개
void write(char[]) :
배열 크기만큼 배열요소들을 출력
출력한 바이트 수 반환
void int write(char[], offs, size) :
char[] 배열에서 offs 위치부터 size 크기만큼을 출력
출력한 바이트 수 반환
void write (String atr)
문자열(String) 출력
스트림 종류
1차 스트림 (기본 스트림)
단독으로 사용 가능
2차 스트림 (보조 스트림)
꼭 기본 스트림에 연결해서 사용해야 하고 단독으로 사용 불가능
기본 스트림에 기능을 추가하기 위해서 사용
기본 스트림 + 보조 스트림 ⇒ 서로 타입이 맞아야 함.
읽기끼리, 쓰기용 끼리 연결
바이트 단위끼리, 문자 단위끼리
Buffered 보조 스트림
속도 빠르게
수레 같은 느낌
FileInputStream + BufferedInputStream
FileOutputStream + BufferedOutputStream
FileReader + BufferedReader
FileWriter + BufferedWriter
- 바이트로 읽을 것을 문자로 변환
- 객체 단위 읽기
- 랜덤한 위치에서 읽기