Java
[Java] 입출력 스트림을 사용해서 구구단을 메모장에 저장 시 오류 발생 / 한글 깨짐 현상
bkuk
2022. 10. 14. 17:48
왼쪽은 출력 스트림을 fileOutputStream . 즉, 기반 스트림 하나만 사용
오른쪽은 출력 스트림을 fileOuputStream인 기반 스트림과
보조 스트림(BufferedWriter)을 사용했다.
우선, for문을 통해 정수를 출력했을 경우다.
두번째로는 정수에 + 48을 더한 결과다.
1을 의미하는 아스키 코드는 49이기 때문이다.
곱셈을 제외한 구구단의 기본 형식 출력은 성공
곱하기를 했을 때는, 결과값(곱셈 값)만 이상하게 출력되었습니다.
또, 두 스트림은 다르게 출력된 것을 확인했습니다.
문자를 출력해본다면 어떨까?
fileOutputStream에서는 바이트 단위로만 출력하기 때문에 왼쪽에서는 오류가 발생했음.
오른쪽에서는 아스키 코드가 아닌 수 들의 곱셈이 출력된 것을 확인했습니다.
ex) 49 * 49 = 2,401 .. 49 * 50 = 2,450 ...
위와 같은 방식인 String 클래스의 valuOf 메서드를 활용해서 정수를 출력해보겠습니다.
왼쪽의 코드는 위에서 동일한 오류가 발생했습니다.
오른쪽은 코드는 구구단 출력을 성공했습니다.