JAVA

▶︎입출력◀︎

chojdsj 2023. 5. 16. 22:14
728x90

 

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