본문 바로가기
Java

[Java] 입출력 스트림을 사용해서 구구단을 메모장에 저장 시 오류 발생 / 한글 깨짐 현상

by bkuk 2022. 10. 14.

 

왼쪽은 출력 스트림을 fileOutputStream . 즉, 기반 스트림 하나만 사용

오른쪽은 출력 스트림을 fileOuputStream인 기반 스트림과

보조 스트림(BufferedWriter)을 사용했다.

 

우선, for문을 통해 정수를 출력했을 경우다.

 

 

두번째로는 정수에 + 48을 더한 결과다.

1을 의미하는 아스키 코드는 49이기 때문이다.

곱셈을 제외한 구구단의 기본 형식 출력은 성공

 

 

곱하기를 했을 때는, 결과값(곱셈 값)만 이상하게 출력되었습니다.

또, 두 스트림은 다르게 출력된 것을 확인했습니다.

 

 

문자를 출력해본다면 어떨까?

fileOutputStream에서는 이트 단위로만 출력하기 때문에 왼쪽에서는 오류가 발생했음.  

 

오른쪽에서는 아스키 코드가 아닌 수 들의 곱셈이 출력된 것을 확인했습니다.

ex) 49 * 49 = 2,401 .. 49 * 50 = 2,450 ...

 

위와 같은 방식인 String 클래스의 valuOf 메서드를 활용해서 정수를 출력해보겠습니다.

 

왼쪽의 코드는 위에서 동일한 오류가 발생했습니다.

 

오른쪽은 코드는 구구단 출력을 성공했습니다.

댓글