본문 바로가기

dev/자바

JDK 11 FileReader Encoding

 
JDK 11 버전부터 FileReader 생성자에 인코딩을 설정할 수 있습니다.
 
11 이하 버전에서 인코딩을 통해서 파일을 읽으려면
 
예를 들어
 
FileInputStream fis = new FileInputStream(fileName);
InputStreamReader isr = new InputStreamReader(fis, Charset.forName("UTF-8"));
BufferedReader br = new BufferedReader(isr);
 
이런 식으로 InputStreamReader를 사용해야 하는데
 
그럴 필요 없이 FileReader로 쉽게 해결할 수 있어서 유용합니다.
 

JDK 11 FileReader 생성자

 

인코딩 포함 예제 코드

 

파일 내용

 

출력 결과

 
인코딩이 포함된 FileReader 생성자로 파일을 읽으면 정상적으로 출력되는 것을 확인할 수 있습니다.
 

인코딩 제외 예제 코드

 
인코딩이 포함되지 않은 코드를 윈도우에서 실행하면 다음과 같이 출력됩니다.
 

출력 결과

 
자바 FileReader로 파일 읽을 때 인코딩이 설정되어 있지 않으면 실행되는 환경의 인코딩을 따르기 때문에
 
실제 파일 내용과 달리 인코딩이 깨져서 출력되는 것을 확인할 수 있습니다.

'dev > 자바' 카테고리의 다른 글

Java Pattern 정규표현식  (0) 2024.05.03
Java thread lock synchronized  (0) 2024.04.23
Java List Stream  (0) 2023.08.29
Comparator&Comparable 인터페이스  (0) 2023.06.20
csv parsing lambda stream  (0) 2023.06.08