자바 입출력 스트림
장치하고는 상관없이 자바의 입출력을 추상화 해놓은 스트림이다.
입출력 스트림 이란 ?
네트웍에서 자료의 흐름이 물과 같다는 의미에서 유래
다양한 입출력 장치에 독립적으로 일관성 있는 입출력 방식을 제공한다.
입출력이 구현되는 곳에서는 모두 I/O 스트림을 사용한다
: 키보드 , 파일 디스크 , 메모리 등이 있다.
장치에 무엇이냐 따라서 해당하는 기능이 여러가지고 구현될수있는데 그것들을 추상화 한다
(이미지)
입출력 스트림 구분
I/O 대상 기준 : 입력 스트림 , 출력 스트림
자바의 종류 : 바이트 스트림 , 문자 스트림
스트림의 기능 : 기반 스트림(기본인가) , 보조 스트림(기능보조)
문자 스트림이나 바이트 스트림이나
기반스트림은 읽거나 쓰고
보조스트림은 기반스트림을 서포터해주는 기능을 추가 (ex 버퍼링기능 , 직렬화)
하나의 스트림은 입력이나 출력이나 기반이나 보조인가 구분하는데 도움이 된다.
스트림의예
뒤에 Stream 은 바이트 단위 , reader writer 문자를 읽고씀
BufferedInputStream 버퍼링 기능을 바이트단위로 읽어주는 보조 스트림
BufferedReader 버퍼링 기능을 문자단위로 보조 스트림
FileInputStream 을 보면 아 파일을 읽어들이고 바이트단위로 읽는구나 라고 알게됨
스트림의 예)
바이트 단위 스트림과 문자 단위 스트림
바이트 단위 스트림 : 바이트 단위로 자료를 읽고 쓴다.(동영상,음악파일)
문자 단위 스트림 : 문자는 2바이트씩 처리 해야 한다.
스트림의예)
문자를 보면 FileReader FileWriter 문자 앞에 보면 어떤 목적지가 있으면 보조 스트림
Buffered를 보면 버퍼 보조스트림
기반스트림과 보조 스트림
기반스트림 : 대상에 직접 자료를 읽고 쓰는 기능의 스트림
보조스트림 : 직접 읽고 쓰는 기능은 없고 추가적인 기능을 제공해 주는 스트림
기반 스트림이나 또 다른 보조 스트림을 생성자의 매개변수로 포함한다.
데코레이터 패턴 기반
기반스트림 + 보조스트림A + 보조스트림B
상속보다 더 유연하게 기능을 확장할 수 있는 디자인 패턴이다.
'JAVA Programming' 카테고리의 다른 글
[83] 바이트 단위 입출력 시스템 (0) | 2020.07.21 |
---|---|
[82] Scanner , Console 클래스 (0) | 2020.07.21 |
[79] 예외처리미루기 , 사용자정의예외 , throws 미루기,throw 예외발생 (0) | 2020.07.21 |
[78] 파일 넣기 , FileInputStream fis = new FileInputStream(fileName); (0) | 2020.07.21 |
[77] 예외와 예외처리 (0) | 2020.07.21 |