I/O Początkujący

I/O plików z domyślnym zestawem znaków na jawne StandardCharsets

Używaj czytników i zapisów Files ze stałymi StandardCharsets zamiast polegać na domyślnym zachowaniu zestawu znaków platformy i wyszukiwaniu po nazwie.

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);
}
Widzisz problem z tym kodem? Daj nam znać.
🌍

Przenośne wyniki

Te same bajty są dekodowane identycznie na każdej maszynie.

🔒

Predefiniowana stała

StandardCharsets.UTF_8 nie może zawierać błędnie napisanej nazwy zestawu znaków.

🧩

Nowoczesne API plików

Path, buforowanie i kodowanie są wyrażone w jednej operacji.

Stare podejście
Domyślny zestaw znaków platformy
Nowoczesne podejście
Jawny standardowy zestaw znaków
Od JDK
7
Poziom trudności
Początkujący
I/O plików z domyślnym zestawem znaków na jawne StandardCharsets
Dostępne

Szeroko dostępne od JDK 7 (lipiec 2011)

Konstruktory Reader i Writer, które polegają na domyślnym zestawie znaków, sprawiają, że zachowanie pliku zależy od środowiska uruchomieniowego. Files.newBufferedReader() i newBufferedWriter() przyjmują jawny Charset, podczas gdy StandardCharsets zapewnia gwarantowane stałe, takie jak UTF_8, bez wyszukiwania po ciągu znaków ani UnsupportedCharsetException.