I/O 초급

기본 문자셋 파일 I/O를 명시적 StandardCharsets로

플랫폼 기본 문자셋 동작과 문자셋 이름 조회 대신 StandardCharsets 상수를 사용하는 Files 리더와 라이터를 사용합니다.

I/O
✕ Platform-default charset
try (Reader reader = new FileReader(path.toFile())) {
    return readAll(reader);
}
✓ Explicit standard charset
try (BufferedReader reader = Files.newBufferedReader(
        path, StandardCharsets.UTF_8)) {
    return readAll(reader);
}
이 코드에 문제가 있나요? 알려주세요.
🌍

이식 가능한 결과

동일한 바이트가 모든 머신에서 동일하게 디코딩됩니다.

🔒

미리 정의된 상수

StandardCharsets.UTF_8은 잘못된 문자셋 이름을 포함할 수 없습니다.

🧩

최신 파일 API

Path, 버퍼링, 인코딩이 하나의 작업으로 표현됩니다.

이전 방식
플랫폼 기본 문자셋
모던 방식
명시적 표준 문자셋
JDK 버전
7
난이도
초급
기본 문자셋 파일 I/O를 명시적 StandardCharsets로
사용 가능

JDK 7 (2011년 7월) 이후 널리 사용 가능

기본 문자셋에 의존하는 Reader 및 Writer 생성자는 파일 동작이 실행 환경에 따라 달라지게 만듭니다. Files.newBufferedReader()와 newBufferedWriter()는 명시적인 Charset을 받아들이며, StandardCharsets는 문자열 조회나 UnsupportedCharsetException 없이 UTF_8과 같은 보장된 상수를 제공합니다.