I/O Principiante

I/O di file con charset predefinito a StandardCharsets esplicito

Usa i reader e writer di Files con le costanti StandardCharsets invece di affidarti al comportamento del charset predefinito della piattaforma e alla ricerca per nome del charset.

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);
}
Vedi un problema con questo codice? Faccelo sapere.
🌍

Risultati portabili

Gli stessi byte vengono decodificati in modo identico su ogni macchina.

🔒

Costante predefinita

StandardCharsets.UTF_8 non può contenere un nome di charset scritto male.

🧩

API di file moderna

Path, buffering e codifica sono espressi in un'unica operazione.

Approccio Vecchio
Charset predefinito della piattaforma
Approccio Moderno
Charset standard esplicito
Dal JDK
7
Difficoltà
Principiante
I/O di file con charset predefinito a StandardCharsets esplicito
Disponibile

Ampiamente disponibile dal JDK 7 (luglio 2011)

I costruttori di Reader e Writer che si basano sul charset predefinito rendono il comportamento del file dipendente dall'ambiente di runtime. Files.newBufferedReader() e newBufferedWriter() accettano un Charset esplicito, mentre StandardCharsets fornisce costanti garantite come UTF_8 senza ricerca per stringa o UnsupportedCharsetException.