[Java] 바이트 스트림
2021. 12. 17. 16:04ㆍLanguage`/Java
바이트 스트림 클래스
- 바이트 단위로 바이너리 데이터가 흐르는 스트림
- 텍스트 파일(문자 데이터) + 이미지 파일(바이너리 데이터) 모두 입출력 가능
- InputStream/OutputStream : 추상 클래스 / 바이트 입출력 처리를 위한 기능 보유 (슈퍼 클래스)
- FileInputStream/FileOutputStream : 파일 입출력을 위한 클래스 / 파일로부터 바이너리 데이터를 읽기/쓰기 가능
- DataInputStream/DataOutputStream : boolean, char, int, long,... 타입의 값을 바이너리 형태로 입출력 / 문자열도 바이너리 형태로 입출력
바이너리 파일 쓰기 FileOutputStream
- 변수나 배열에 들어 있는 바이너리 값(이진수)들을 그대로 파일에 저장 (.out파일)
- FileOutputStream(File file) : file에 데이터를 저장할 FileOutputStream 생성
- FileOutputStream(String name) : name 파일에 데이터를 저장할 FileOutputStream 생성
- FileOutputStream(File file, boolean append) : append가 true이면 파일의 마지막부터 데이터 저장
- FileOutputStream(String name, boolean append) : append가 true이면 파일의 마지막부터 데이터 저장
OutputStream/FileOutputStream 메소드
void write(int b)
- int형으로 넘겨진 한 바이트를 바이너리 데이터로 파일에 저장
void write(byte[] b)
- 배열 b의 바이트를 모두 바이너리 데이터로 파일에 저장
void write(byte[] b, int off, int len)
- 배열 b의 offset부터 len 크기만큼 바이너리 데이터로 파일에 저장
void flush()
- 스트림에 남아있는 데이터들을 버퍼에서 없애기
void close()
- 출력 스트림을 닫고 관련된 시스템 자원 해제
바이너리 파일 읽기 FileInputStream
- 파일로 부터 바이너리 값을 그대로 읽는다
- FileInputStream(File file) : file이 지정하는 파일로부터 읽는 FileInputStream 생성
- FileInputStream(String name) : name이 지정하는 파일로부터 읽는 FileInputStream 생성
InputStream/FileInputStream 메소드
int read()
- 입력 스트림에서 한 바이트를 읽어서 int형으로 리턴
int read(byte[] b)
- 배열 b의 최대 크기만큼 바이트를 읽는다 / 중간에 EOF만나면 실제 읽은 바이트 수 리턴
int read(byte[] b, int off, int len)
- 최대 len개의 바이트를 읽어서 배열 b의 off위치부터 저장 / 중간에 EOF만나면 실제 읽은 바이트 수 리턴
int available()
- 입력 스트림에서 현재 읽을 수 있는 바이트 수 리턴
void close()
- 입력 스트림을 닫고 관련된 시스템 자원 해제