IO(입출력)
- Input(입력) : 외부 -> 내부로 데이터가 들어오는 것
- Output(출력) : 내부 -> 외부로 데이터를 내보내는 것
- Stream : 입/출력 통로 역할(데이터가 흘러가는 통로) 기본적으로 Stream은 단방향
스트림(Stream) 클래스
- 입출력 장치에서 데이터를 읽고 쓰기 위해서 자바에서 제공하는 클래스
- 하나의 스트림으로 입출력을 동시에 수행할 수 없으므로 동시에 수행하려면 2개의 스트림 필요
** InputStream **
- 바이트 기반 입력 스트림의 최상위 클래스로 추상 클래스임
** FileInputStream **
- 파일을 바이트 단위로 읽을 때 사용하며 그림, 오디오, 비디오, 텍스트파일 등 모든 종류의 파일 읽기 가능
- InputStream의 하위 클래스로 InputStream과 사용방법 동일
- FileInputStream 객체가 생성될 때 파일과 직접 연결된다. 만약 파일이 존재하지 않으면 FileNotFoundException 이 발생하므로 예외.
처리 필수
** OutputStream **
- 바이트 기반 출력 스트림의 최상위 클래스로 추상 클래스임
** FileOutputStream **
- 파일을 바이트 단위로 저장할 때 사용하며 그림,오디오,비디오,텍스트파일 등 모든 종류의 데이터를 파일로 저장
- OutputStream 의 하위 클래스로 OutputStream 과 사용방법 동일
- FileOutputStream 객체가 생성될 때 파일과 직접 연결 됨
- 만약 파일이 존재하지 않으면 자동으로 생성하지만 이미 파일이 존재하는 경우 파일을 덮어쓰는 단점이 있음
** Reader **
- 문자 기반 입력 스트림의 최상위 클래스로 추상클래스임
** FileReader **
- 문자 단위로 텍스트 기반 파일을 읽을 때 사용
- 텍스트가 아닌 그림, 오디오, 비디오 등의 파일은 읽기 불가능
- Reader의 하위 클래스로 Reader와 사용방법 동일
- FileReader 객체가 생성될 때 파일과 직접 연결 됨. 만약 파일이 존재하지 않으면 FileNotFoundException이 발생하므로 예외처리 필
수
** Writer **
- 문자 기반 출력 스트림의 최상위 클래스로 추상클래스임
** FileWriter **
- 문자 단위로 텍스트 기반 파일을 쓸(저장할)때 사용
- 텍스트가 아닌 그림, 오디오, 비디오 등의 파일은 저장 불가능
- Writer의 하위 클래스로 Writerd와 사용방법 동일
- FileWriter 객체가 생성될 때 파일과 직접 연결됨
- 만약 파일이 존재하지 않으면 자동으로 생성하지만, 이미 파일이 존재하는 경우 파일을 덮어쓰는 단점이 있음
** 보조 스트림 **
- 스트림의 기능을 향상시키거나 새로운 기능을 추가하기 위해 사용
- 보조 스트림은 실제 데이터를 주고받는 스트림이 아니기 때문에 입출력 처리 불가능
- 기반 스트림을 먼저 생성한 후 이를 이용하여 보조 스트림 생성
'JAVA' 카테고리의 다른 글
기술면접 질문 리스트 (1) | 2023.12.11 |
---|---|
Optional 객체 (0) | 2023.11.21 |
▶︎컬렉션◀︎ (0) | 2023.05.14 |
▶︎예외◀︎ (0) | 2023.05.14 |
▶︎인터페이스◀︎ (0) | 2023.05.10 |