I/O Stream 스트림
- Coding/Java
- 2018. 10. 28.
반응형
728x90
반응형
I/O 스트림
- 바이트 단위로 데이터를 전송한다.
- 실제의 입력과 출력이 표현된 데이터의 흐름이다.
- 운영체제에 의해 생성되는 가상의 연결고리 역할을 수행한다.
- 출력과 입력의 중간매개체 역할을 한다.
- 스트림을 한 방향으로만 통신이 가능하여 입력과 출력을 동시에 실행할 수 없다.
- 사용목적에 따라 입력스트림, 출력스트림을 구분한다.
- (1) 입출력 스트림
입력: InputStream | read() | return : int -> 더이상 읽어들일 바이트가 없으면 -1을 반환한다. |
출력: OutputSTream | write() | return: void |
- (2) 바이트 기반 스트림
파일 | 입력: FileInputStream | 출력: FileOutputStream |
메모리 | 입력: ByteArrayInputStream | 출력: ByteArrayOutputStream |
프로세스 | 입력: pipedInputStream | 출력: pipedInputStream |
오디오 장치 | 입력: AutoInputStream | 출력: AudioOutputStream |
- (3) 보조스트림
- 실제로 데이터를 주고받을수는 없다.
- 다른 스트림의 기능을 향상시키거나 새로운 기능을 추가해준다.
필터 | 입력: FilterInputStream | 출력: FilterOutputStream |
버퍼 | 입력: BuffersInputStream | 출력: BufferedOutputStream |
Java 기본타입 | 입력: DataInputInputStream | 출력: DataInputOutputStream |
객체 역직렬화 | 입력: ObjectInputStream | 출력: ObjectOutputStream |
- (4) 문자기반 스트림
- JAVA에서 char 형이 2byte인데, 1byte씩 전송되는 바이트 기반 스트림으로는 처리하기 어렵기 때문에 사용한다.
파일 | 입력: FileReader | 출력: FileWriter |
메모리 | 입력: CharArrayReader | 출력: CharArrayWriter |
프로세스 | 입력: PipedReader | 출력: PipedWriter |
문자열 | 입력: StringReader | 출력: StringWriter |
- (5) 보조 문자기반 스트림
필터 | 입력: FilterReader | 출력: FilterWriter |
버퍼 | 입력: BufferedReader | 출력: BufferedWriter |
참고사항
스트림을 닫으려면 close() 메소드를 사용하는데, 보통 flush(); close() 이렇게 코드를 작성한다.
flush()란? 버퍼에 남아있는 데이터를 전송하고 버퍼를 비운다.
하지만, close() 메소드만 선언해도 flush()를 자동으로 해주기 때문에 close() 메소드만 작성해도 된다.
반응형
'Coding > Java' 카테고리의 다른 글
전역변수 vs 멤버변수 (0) | 2018.10.28 |
---|---|
new 연산자를 사용하여 인스턴스 생성 (1) | 2018.10.28 |
Arraylist -> 배열로 변경하기 (0) | 2018.10.27 |
콤마(,)로 구분된 String을 배열로 변환하기 (0) | 2018.10.27 |
삼항연산자 (0) | 2018.10.27 |