728x90
❓ 그대로 출력하기 2
🏷️ 관련 주제 : BufferedReader BufferedWriter NullPointerException

문제
입력 받은 대로 출력하는 프로그램을 작성하시오.
입력
입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 있을 수도 있다.
출력
입력받은 그대로 출력한다.
예제 입력 1
Hello
Baekjoon
Online Judge
예제 출력 2
Hello
Baekjoon
Online Judge
출처
- 문제를 만든 사람: baekjoon
알고리즘 분류
- 구현
- 문자열
💦 나의 시도
Try01
어제 처음 알게된 BufferedWriter, BufferedReader를 사용
- 반복문(
while(true){...})을 통해 문자열을 입력받고 입력값이 없는데bw.readLine();을 실행하면 예외가 발생할 것이라 생각하여 try-catch문으로 예외 처리하는 부분에서 출력을 하려고 함.
❌ 틀렸습니다.
Try02
while(true){...}에서 예외가 발생하지 않는건가?
라고 생각하여 while문 안에서 한줄씩 입력 받고 bw.flush();로 바로 바로 출력
💥 런타임 에러(NullPointer)
Try03
while(true){...} 부분에서 예외가 발생하는 것 같아서 입력값 null 체크 및 반복문을 종료하는 조건문 추가
🎉드디어 성공!🎉
- 메모리 : 11684 KB
- 시간 : 68 ms
📑제출 기록 및 오답 원인

💯 해결 방법
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;
class Main {
public static void main(String[] args) {
try {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true) {
String input = br.readLine();
if (input == null) {
break;
}
bw.write(input);
bw.newLine();
bw.flush();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
728x90