728x90
반응형
➡️BufferedReader
많은 입력을 요구할 때는 Scanner보다 BufferedReader가 효율적이다.
멀티 쓰레드 환경에서는 BufferedReader가 더 안전하다.
* BufferedReader 선언
import java.io.BufferedReader;
import java.io.InputStreamReader;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
readLine으로 BufferedReader 데이터를 받아올 때는 반환 값이 String이다.
int는 Integer.parseInt 처리를 통해 받아야 한다.
String s = br.readLine();
추가적으로 IOException 처리를 해주어야 한다.
import java.io.IOException;
public static void main (String[] args) throws IOException { ... }
➡️StringTokenizer
Line 단위로 받는 것이 아니라 공백 단위로 데이터를 받고 싶을 때는 StringTokenizer를 사용한다.
import java.util.StringTokenizer;
StringTokenizer st = new StringTokenizer(br.readLine());
String a = st.nextToken();
String b = st.nextToken();
➡️BufferedWriter
System.out.println 대신에 사용하는 출력. 버퍼를 이용한다.
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String s = "test";
bw.write(s); // Buffer에 있는 값 모두 출력
bw.newLine(); // 줄 바꿈
bw.flush(); // 남아있는 데이터 모두 출력
bw.close(); // 스트림 닫기
▶️ 기출문제
기출문제는 백준 15552번 풀이
https://www.acmicpc.net/problem/15552
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main (String[] args) throws IOException {
// BufferedReader, BufferedWriter, BufferedWriter.flush
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int testCase = Integer.parseInt(st.nextToken());
for (int i=1; i<=testCase; i++) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int sum = a+b;
bw.write(sum + "\n");
}
bw.flush();
bw.close();
}
}
▶️ 참고
https://rlakuku-program.tistory.com/33
728x90
반응형
'Language > JAVA' 카테고리의 다른 글
[JAVA] 문자열 반복 메소드 repeat (0) | 2024.02.15 |
---|---|
[JAVA] while (n-- > 0) 의미 (0) | 2024.02.11 |
JAVA 13일차 - 람다, 스트림 (0) | 2022.07.06 |
JAVA 12일차 - 실습문제 02 수정 (0) | 2022.07.06 |
JAVA 12일차 - 실습문제 02 (0) | 2022.07.05 |
댓글