성능 향상 보조 스트림
: 프로그램이 입출력 소스와 직접 작업하지 않고 중간에 메모리 버퍼(Buffer)와 작업함으로써 실행 성능을 향상시킴
: 버퍼는 데이터가 쌓이기를 기다렸다가 꽉 차게 되면 데이터를 한꺼번에 하드 디스크로 보냄으로써 출력 횟수를 줄여줌
BufferedInputStream
: 바이트 입력 스트림에 연결되어 버퍼를 제공해주는 보조스트림
BufferedReader
: 문자 입력 스트림에 연결되어 버퍼를 제공해주는 보조스트림
BufferedInputStream bos = new BufferedOutputStream(바이트입력스트림);
BufferedReader bw = new BufferedWriter(문자입력스트림);
버퍼 사용여부에 따른 성능비교
package sec05.exam03_bufferedinputstream_YJ;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
public class BufferedInputStreamExample {
public static void main(String[] args) throws Exception {
long start = 0; //시작시간
long end = 0; //종료시간
FileInputStream fis1 = new FileInputStream("C:/JavaProgramming/source/chap18/src/"
+ "sec05/exam03_bufferedinputstream_YJ/BufferedInputStreamExample.java");
start = System.currentTimeMillis();
while(fis1.read() != -1) {}
end = System.currentTimeMillis();
System.out.println("보조 스트림 사용하지 않았을 때: " + (end - start) + "ms");
FileInputStream fis2 = new FileInputStream("C:/JavaProgramming/source/chap18/src/"
+ "sec05/exam03_bufferedinputstream_YJ/BufferedInputStreamExample.java");
BufferedInputStream bis = new BufferedInputStream(fis2); //버퍼스트림 생성
start = System.currentTimeMillis();
while(bis.read() != -1) {}
end = System.currentTimeMillis();
System.out.println("보조 스트림 사용했을 때: " + (end - start) + "ms");
bis.close();
fis2.close();
}
}
보조 스트림 사용하지 않았을 때: 0ms
보조 스트림 사용했을 때: 0ms
콘솔로부터 라인 단위로 읽기
package sec05.exam04_bufferedreader_YJ;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
public class BufferedReaderExample {
public static void main(String[] args) throws Exception {
InputStream is = System.in;
Reader reader = new InputStreamReader(is);
BufferedReader br = new BufferedReader(reader); //버퍼 스트림 생성
System.out.print("입력: ");
String lineString = br.readLine();
System.out.println("출력: " + lineString);
}
}
입력: 한 줄 전체를 읽습니다.
출력: 한 줄 전체를 읽습니다.
'Java > 18. IO 기반 입출력 및 네트워킹' 카테고리의 다른 글
Day 23 : 프린터 보조 스트림 - PrintStream, PrintWriter (0) | 2021.11.18 |
---|---|
Day 23 : 기본 타입 입출력 보조 스트림 - DataInputStream, DataOutputStream (0) | 2021.11.18 |
Day 23 : 문자 변환 보조 스트림 - InputStreamReader, OutputStreamWriter (0) | 2021.11.18 |
Day 23 : 보조 스트림 (0) | 2021.11.18 |
Day 23 : 파일 입출력 - FileWriter (0) | 2021.11.18 |