반응형
BufferedReader
저번 시간에 배운 Scanner이 외에도 BufferedReader를 통해서도 입력을 받을 수 있다. BufferedReader를 사용하기 위해서는 두가지의 Class를 import 해야 한다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
둘 다 Java의 io 패키지 안에 있는 클래스 이기 때문에 다음과 같이 한줄로도 선언할 수 있다.
import java.io.* // *은 all을 뜻하기 때문에 io 패키지 안에 있는 모든 클래스를 import
InputStreamReader 클래스도 필요한 이유는 BufferedReader 클래스를 통해 Object를 선언할 때 매개변수로 넘겨주어야 하기 때문이다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedReader 클래스의 메소드를 사용할 수 있는 객체를 선언해주었기 때문에 해당 메소드를 사용할 수 있다.
- (int) read() : 한 글자만 읽어 정수형으로 반환.(Reads a single character.)
- (int)read(char[] cbuf, int offset, int length) : cbuf의 offset위치부터 length만큼 문자를 읽어옵니다.
- (String) readLine() : 한 줄을 읽어 String으로 반환.(Reads a line of text.)
BufferedWriter
BufferedWrite는 출력을 담당하는 Class이다. 선언방법으로는 다음과 같다.
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
//declare
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bufferedwriter를 통해 console창에 출력을 하는 방법은 기존의 방식과는 달리 다음과 같이 사용한다.
bw.write( [ 원하는 출력 ] );
bw.flush(); // buffer에 있는 값을 모두 출력
bw.write를 통해서 원하는 출력값을 버퍼에 기입하고 flush()를 통해 출력시킨다.
bufferedreader, bufferedwrite 사용 후에는 close 메소드를 통해 종료시켜주어야 한다.
Scanner VS BufferedReader
- Buffer에 입력데이터를 모아서 한번에 전달하기 때문에 속도,효율성 측면에서 성능이 좋다.
- 대용량의 입출력 데이터를 다루는 데 유용하다.
코딩 문제를 풀다보면 대용량의 입출력 데이터를 다루는 경우가 많은 데 그럴경우 Scanner를 사용하는 것보다 BufferedReader를 사용하면 훨씬 코드가 빨라진다.
반응형
'Programming > Java' 카테고리의 다른 글
[Java] 연산자 - SCE, 비트 (0) | 2023.09.20 |
---|---|
[Java]연산자 - 부호, 증감, 비교, 논리 (0) | 2023.09.20 |
[JAVA] 연산자 - 대입 (0) | 2023.09.20 |
[JAVA] 입력 - Scanner (0) | 2023.09.19 |
[JAVA] 변수(Variables) (0) | 2023.09.19 |