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.
try (Reader reader = new FileReader(path.toFile())) {
return readAll(reader);
}
try (BufferedReader reader = Files.newBufferedReader(
path, StandardCharsets.UTF_8)) {
return readAll(reader);
}
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.
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.