BufferedInputStream + eclipse 인코딩 설정 🧑‍💻

2021-08-13·1분 읽기·

BufferedInputStream + eclipse 인코딩 설정 🧑‍💻

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

BufferedInputStream + eclipse 인코딩 설정 🧑‍💻

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

  • 예제 1 - 스트림 데이터 출력
code
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
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. -> -> ->

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

ShareX

이 글이 도움이 됐나요?