일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- network
- 알고리즘
- Data Structure
- Redux
- DP
- frontend
- vscode
- BFS
- 리트코드
- DFS
- TypeScript
- VIM
- Graph
- Database
- Python
- 안드로이드
- java
- CS
- 프로그래머스
- 자바
- 다이나믹 프로그래밍
- LeetCode
- 백준
- 그레이들
- Algorithm
- git
- 동적 계획법
- Javascript
- react
- db
- Today
- Total
늘 겸손하게
백준 BufferedReader, BufferedWriter로 입출력 본문
안녕하세요 besforyou 입니다
프로그램 수행 속도가 중요한 백준 문제를 풀때
Scanner를 이용하는것보다 더 빠르게 입출력을 수행할 수 있는
BufferedReader, BufferedWriter에 대해 설명하겠습니다.
1. BufferedReader로 입력받기
Scanner를 import하여 입력받는 방법도 있지만 BufferedReader로 입출력을 수행하는것이 더 빠릅니다.
BufferedReader 객체 생성
1
|
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
|
cs |
입력은 readLine() 메소드로 개행 문자 \n 를 만날때까지 입력을 받아옵니다.
1
|
int N = Integer.parseInt(br.readLine());
|
cs |
입력 예시
입력 :
5
6
9
10
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0 ; i < 4 ; i++) {
int n = Integer.parseInt(br.readLine());
System.out.println(n);
}
}
}
|
cs |
출력
5
6
9
10
주의점
main 메소드 매개변수 오른편에 throws IOException을 추가하지 않고 사용하면 매번 readline() 메소드를 호출할때마다 try catch 문을 써야하기 때문에 매우 불편하므로 throws IOException을 메인 메소드 옆에 추가해줍니다.
1
2
|
public class Main {
public static void main(String []args) throws IOException {
|
cs |
2. BufferedWriter로 출력하기
마찬가지로 System.out.print 으로 그냥 출력하는것보다 훨씬 빠르게 출력할 수 있습니다.
Bufferedwriter 객체 생성
1
|
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
|
cs |
사용법
1. write()
버퍼가 꽉 차거나 개행문자를 만나면 화면으로 출력해주는 메소드입니다.
write() 메소드 안에 출력하고자 할 데이터를 인자로 줍니다.
단, 개행 문자를 직접 넣어주어야합니다. ( 자동으로 안 붙여줍니다 )
2. flush()
flush() 메소드롤 통해 버퍼 안에 저장된 데이터를 모두 화면으로 출력하여 버퍼를 비울 수 있습니다.
3. close()
BufferedWriter를 모두 사용했다면 close() 메소드로 출력 스트림을 종료 시킬 수 있습니다.
입력 예시
입력 :
5
6
9
10
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import java.io.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
for (int i = 0 ; i < 4 ; i++) {
int n = Integer.parseInt(br.readLine());
bw.write(n + "\n");
}
bw.flush();
bw.close();
}
}
|
cs |
출력
5
6
9
10
'Programming > Java' 카테고리의 다른 글
자바 기본 타입 배열 정렬 (0) | 2022.02.15 |
---|---|
Java ArrayList 정렬 with Collections (0) | 2022.02.13 |
Java Thread 기초 이론 (0) | 2022.02.08 |
Java 객체 인자로 전달, 레퍼런스 (0) | 2022.02.08 |
Java 특징 정리 (0) | 2022.02.07 |