BufferedWriter 출력결과에 대한 질문입니다.
조회수 960회
10 3 100을입력 후
System.out.println으로 출력하면 15가 나오는데 BufferedWriter로 출력하면 이상한 문자가 출력됩니다.
이유가 무엇일까요?
감사합니다!
package math;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Scanner;
import java.util.StringTokenizer;
public class CodeRunner{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String s = br.readLine();
StringTokenizer st = new StringTokenizer(s);
double A = Double.parseDouble(st.nextToken());
double B = Double.parseDouble(st.nextToken());
double V = Double.parseDouble(st.nextToken());
int day = 0;
double length = 0;
length = A-B;
day = (int)Math.ceil(V/length);
System.out.println(day);
bw.write(day);
bw.flush();
}
}
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
day 를 String 형으로 변환하여 쓰세요.
bw.write(String.valueOf(day));
이유는 reader/writer 는 문자열을 다루는 클래스입니다.
여기에 정수값을 넣게 되면 기본적으로 ascii 타입으로 인코딩을 합니다.
65 는 A 이니 확인해보고 싶다면
bw.write(65);
로 A 가 출력되는 확인할 수 있습니다.
댓글 입력