[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)만큼 한 번에 읽어들인다.


  - 이 객체는 내부에 데이터를 임시 저장할 바이트 배열을 내장하고있다.

  - 데이터를 읽어들일 때 최대한 바이트 배열 크기만큼 한 번에 읽어 들인다.

  - 그리고 그 배열에서 조금씩 퍼 쓰다가, 버퍼가 바닥나면 다시 그 버퍼만큼 읽어 들     인다.

  - 이렇게 함으로써 읽어 들이는 횟수를 줄이게 디어 읽기 속도가 향상된다.


블로그 이미지

필로그래머

,