[Java] 데이터 프로세싱 스트림 클래스 (data processing stream) 클래스 - bufferedInputStream
Programming/java 2017. 5. 22. 09:34[Java] 자바 데이터 프로세싱 스트림 클래스 (data processing stream) 클래스 - bufferedInputStream
데이터 프로세싱 스트림 클래스 (data processing stream) 클래스
1) 입출력 중간에 개입하여 데이터를 가공하는 역할을 수행한다.
2) 데이터를 직접 파일이나 메모리, 다른 어플리케이션으로 입출력 할 수는 없다.
- 예 :
- DataInputStream/DataOutputStream
- byte, short, int, long, float, double, boolean, char, String 타입의 데이터를
바이트 배열로 가공하여 입출력을 수행한다.
- BufferedInputStream/BufferedOutputStream
- 데이터를 읽고 쓸 때 중간에 임시 저장소 버퍼(캐시;cache)를 사용한다.
- 그래서 실제 파일로 입출력하는 횟수를 줄임으로써 읽고 쓰기 속도를 높이는
방법이다.
- ObjectInputStream/ObjectOuptStream
- 객체를 바이트 배열로 만들어 출력하고, 바이트 배열을 다시 객체로 복원한다.
BufferedInputStream
개념 :
뷔페에서 만약 접시를 사용하지 않고 음식을 한 개씩 담는다면 먹고 싶은 음식이
생겼을 때 왔다 갔다 하느라 음식을 찾기 위한 이동 시간(Data seak time)이 오래
걸릴 것이다. 이러한 시간을 줄이기 위해 사람들은 테이블 위에 있는 음식을 가져올
때 접시를 이용한다. 이 접시를 '버퍼'라고 부를 수 있다. 데이터를 읽어들일 대
최대한 바이트 배열 크기(한 접시. 보통 8096byte)만큼 한 번에 읽어들인다.
- 이 객체는 내부에 데이터를 임시 저장할 바이트 배열을 내장하고있다.
- 데이터를 읽어들일 때 최대한 바이트 배열 크기만큼 한 번에 읽어 들인다.
- 그리고 그 배열에서 조금씩 퍼 쓰다가, 버퍼가 바닥나면 다시 그 버퍼만큼 읽어 들 인다.
- 이렇게 함으로써 읽어 들이는 횟수를 줄이게 디어 읽기 속도가 향상된다.
'Programming > java' 카테고리의 다른 글
[Java] 멀티 태스킹 - 개요 및 JVM 기본 스레드와 스레드 그룹들 (0) | 2017.05.23 |
---|---|
[Java] 프로그램 아규먼트 program argument (args) 종류 (0) | 2017.05.23 |
[Java] 파일 입출력 Binary File I/O - 바이너리 스트림 클래스 (0) | 2017.05.19 |
[Java] (6) 예외처리 (exception) - throws 선언 (0) | 2017.05.18 |
[Java] (5) 예외처리 (exception) - 사용자 정의 예외 던지기 (0) | 2017.05.18 |