BufferedInputStream + eclipse 인코딩 설정 🧑‍💻

2021-08-13

BufferedInputStream + eclipse 인코딩 설정 🧑‍💻

BufferedInputStream + eclipse 인코딩 설정 🧑‍💻 java BufferedInputStream은 컴퓨터의 각 부품 별 성능 격차에 따른 처리 속도 저하를 줄이기 위해서 사용되며, 기존의 처리 방식인 프로그램이 입출력 소스와 직접 작업하는 방법과 달리 중간에 메모리 버퍼와 함께 작업을 진행해 처리 시간을 단축시킬 수 있다. 예제 1 -

BufferedInputStream + eclipse 인코딩 설정 🧑‍💻

java BufferedInputStream은 컴퓨터의 각 부품 별 성능 격차에 따른 처리 속도 저하를 줄이기 위해서 사용되며, 기존의 처리 방식인 프로그램이 입출력 소스와 직접 작업하는 방법과 달리 중간에 메모리 버퍼와 함께 작업을 진행해 처리 시간을 단축시킬 수 있다.

  • 예제 1 - 스트림 데이터 출력
code snippet
import java.io.BufferedInputStream; import java.io.FileInputStream; public class example2 { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("c:/temp/test.txt"); BufferedInputStream bis = new BufferedInputStream(fis); byte[] byteBuff = new byte; int nRLen = bis.read(byteBuff); String strBuff = new String(byteBuff, 0, nRLen); System.out.printf("읽은 바이트수 : \n읽은 내용 %s \n", nRLen, strBuff); bis.close(); fis.close(); } catch (Exception e) { System.out.println("파일이 없습니다!.\n"); System.out.println("c:/temp/test.txt\n"); } } }

실행 결과

실행 결과 글자가 깨지긴 했어도 잘 읽어온 것을 확인할 수 있다.

스트림은 입력 소스로부터 자신의 내부 버퍼 크기만큼 데이터를 먼저 읽고 버퍼에 저장한다.

생성자 매개값으로 준 입력 스트림과 연결되어 8918 내부 버퍼 사이즈를 갖는다.

BufferedInputStream bis = new BufferedInputStream("C:/temp/test.PNG") 예제로 보여줄 이미지의 바이트 스트림은 8918을 넘지 않는다.

  • 예제 2 - 이미지를 읽는데 걸리는 시간 비교
code snippet
import java.io.BufferedInputStream; import java.io.FileInputStream; public class BufferdInputStreamDefault { public static void main(String[] args) throws Exception{ long start = 0; long end = 0; FileInputStream fis1 = new FileInputStream("C:/temp/test.PNG"); start = System.currentTimeMillis(); while(fis1.read() != -1) {} end = System.currentTimeMillis(); System.out.println("BufferdInputStream을 사용하지 않았을 때 걸린 시간: " + (end-start) + "ms"); fis1.close(); FileInputStream fis2 = new FileInputStream("C:/temp/test.PNG"); BufferedInputStream bis = new BufferedInputStream(fis2); start = System.currentTimeMillis(); while(bis.read() != -1) {} end = System.currentTimeMillis(); System.out.println("BufferdInputStream을 사용했을 때 걸린 시간 : " + (end-start) + "ms"); bis.close(); fis2.close(); } }

실행 결과

BufferInputStream을 사용했을 시 사용하지 않은 경우보다 60배 정도의 읽기 속도 차이를 보여준다. 생각보다 많다..


크기가 큰 데이터 스트림을 추가하게 된다면?

9.5GB ISO 파일을 추가했을 시 스트림 값을 읽어오지 못했다.


  • eclipse 인코딩 설정 방법
  1. 상단 -> -> -> -> -> 하단 Deault encoding "UTF-8" 입력 -> ->

  2. -> -> -> 선택 ->

  3. -> -> -> ->

  4. -> -> ->

  5. -> -> ->

  6. -> -> ->

  7. -> -> ->

아까 보이지 않았던 글씨가 표시된다.